问题标签 [loss-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
873 浏览

neural-network - 使用 Y_True 作为中间层的输入

我正在尝试实现一个类似于以下框图的结构。我有能力从头开始实现它,但是当我想在 Keras 中实现它时,我遇到了一些困难。任何帮助,将不胜感激。具体来说,我有两个关于它在 Keras 中的实施的问题。

1)我怎样才能将我的实际输出作为一个单独的输入层,如下面的框图所示。由于每个输入都被输入到网络中,我想要图中显示的 Y_true 部分中的相应黄金标准输出。
2)如果我想从成本部分反向传播成本函数,是否可以从垂直路径而不是具有第三层副本的路径向后传播。

Keras的整体框图

0 投票
1 回答
899 浏览

python - Keras - 从一个神经网络做出两个预测

我正在尝试组合由同一网络产生的两个输出,该网络对 4 类任务和 10 类任务进行预测。然后我希望将这些输出组合起来以给出一个长度为 14 的数组,我将其用作我的最终目标。

虽然这似乎很有效,但预测总是针对一个类,所以它产生一个概率分布,它只关心从 14 个选项中选择 1 个而不是 2 个。我真正需要它做的是提供 2 个预测,一个用于每个班级。我希望这一切都由同一个模型生产。

我的问题是确定适当的损失函数和预测方法?对于预测,我可以简单地在 softmax 之后获取每一层的输出,但是我不确定如何为每个要训练的东西设置损失函数。

有任何想法吗?

非常感谢

0 投票
1 回答
89 浏览

machine-learning - 不可训练权重函数的梯度

我正在尝试实现一个自写的损失函数。我的管道如下

x -> {常量计算} = x_feature ->机器学习训练-> y_feature -> {常量计算} = y_produced

这些“恒定计算”对于找出所需的 o/p 和产生的 o/p 之间的差异是必要的。

所以如果我取y_produced和y_original的L2范数,我应该如何将这个损失纳入原始损失中。

请注意 与y_produced具有不同的维度y_feature

0 投票
2 回答
6961 浏览

python - keras sparse_categorical_crossentropy 损失函数输出形状不匹配

我有一个包含 3570 个标签的数据集。当我使用sparse_categorical_crossentropy作为损失函数时,输出形状不匹配。

输出是 ValueError: Error when checking model target: expected dense_42 to have shape (None, 1) but got array with shape (1055, 3570)

然后我发现了这个问题#2444并用于np.expand_dims(y, -1)更改代码。但是还是有错误。

错误 ValueError: Error when checking model target: expected dense_45 to have 2 dimensions, but got array with shape (1055, 3570, 1)

我应该如何更改代码?

0 投票
1 回答
615 浏览

machine-learning - 神经网络成本函数随时期数振荡

我正在为具有 sigmoid 激活和交叉熵损失函数的 iris 数据集实现 4-5-3 神经网络。但是损失与时期数的关系图在波动,我不知道为什么。任何帮助将不胜感激!

https://imgur.com/a/EUqpb

0 投票
1 回答
2016 浏览

python - Keras 自定义损失函数 dtype 错误

我有一个 NN,它有两个相同的 CNN(类似于 Siamese 网络),然后合并输出,并打算在合并的输出上应用自定义损失函数,如下所示:

在我的自定义损失函数中,我需要将 y 垂直分成两部分,然后对每一部分应用分类交叉熵损失。但是,我不断从我的损失函数中得到 dtype 错误,例如:

ValueError Traceback (last last call last) in () ----> 1 model.compile(loss=categorical_crossentropy_loss, optimizer=RMSprop())

/usr/local/lib/python3.5/dist-packages/keras/engine/training.py 在编译(自我,优化器,损失,指标,loss_weights,sample_weight_mode,**kwargs)909 loss_weight = loss_weights_list [i] 910 output_loss = weighted_loss(y_true, y_pred, --> 911 sample_weight, mask) 912 if len(self.outputs) > 1: 913 self.metrics_tensors.append(output_loss)

/usr/local/lib/python3.5/dist-packages/keras/engine/training.py in weighted(y_true, y_pred, weights, mask) 451 # 如果权重不是无,则应用样本加权 452:-> 453 score_array *= 权重 454 score_array /= K.mean(K.cast(K.not_equal(weights, 0), K.floatx())) 455 返回 K.mean(score_array)

/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/math_ops.py in binary_op_wrapper(x, y) 827 if not isinstance(y, sparse_tensor.SparseTensor): 828 try: --> 829 y = ops.convert_to_tensor(y, dtype=x.dtype.base_dtype, name="y") 830 except TypeError: 831 # 如果 RHS 不是张量,它可能是张量感知对象

/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py in convert_to_tensor(value, dtype, name, preferred_dtype) 674 name=name, 675 preferred_dtype=preferred_dtype, --> 676 as_ref =假)677 678

/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py in internal_convert_to_tensor(value, dtype, name, as_ref, preferred_dtype) 739 740 if ret is None: --> 741 ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) 742 743 如果 ret 未实现:

/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py in _TensorTensorConversionFunction(t, dtype, name, as_ref) 612 raise ValueError( 613 "Tensor conversion requested dtype %s for Tensor with dtype %s: %r" --> 614 % (dtype.name, t.dtype.name, str(t))) 615 return t 616

ValueError:张量转换为 dtype float32 的张量请求 dtype float64:'Tensor("processed_a_b_sample_weights_1:0", shape=(?,), dtype=float32)'

这是重现错误的MWE:

0 投票
1 回答
3502 浏览

python - 自定义目标函数 Keras

我需要定义自己的损失函数,我使用的是 GAN 模型,我的损失将包括真实图像和生成图像之间的逆向损失和 L1 损失。

我试图编写一个函数,但出现以下错误:

我的损失函数是:

0 投票
0 回答
480 浏览

python - 在自定义损失函数中获取权重

我正在尝试实现一个自定义损失函数,该函数给出加权像素交叉熵值。

我已经用“sample_weight_mode='temporal'”编译了模型,并为每个单独的图像传递了不同的权重。为此,我有以下内容:

其中,train_generator 产生具有以下维度的 (input_image, target_label, weight) 元组:

是否可以实现一个损失函数,获得这个相应的权重作为参数?谁能告诉我是否可以实现如下所示的功能?

权重图是目标的形态侵蚀版本。我试图在自定义损失函数本身中创建权重图。由于我的数据是 3D,我不能使用 tensorflow 的“tf.nn.erosion2d”。

而且我无法将张量对象转换为 numpy 数组来执行此操作,因为它给出了以下负维度错误。

如果您对此有所了解或遇到类似问题,有人可以帮忙吗?

0 投票
0 回答
342 浏览

python - Seq2Seq 损失函数帮助 Tensorflow

我无法弄清楚如何为我的 basic_seq2seq 模型创建损失函数。我的输入是一个段落,输出是该段落的部分标题。

这是我当前的代码:

有关如何创建此损失函数的任何帮助都会有所帮助。我对 tensorflow 很陌生,所以我尝试了被注释掉的简单损失函数

但它不起作用,因为损失总是为 0。我的朋友试图创建一个目前存在的损失函数,但我不知道他想做什么。

0 投票
2 回答
5421 浏览

machine-learning - 机器学习中的损失函数和RMSE有什么区别?

有人可以解释机器学习中损失函数和 RMSE(均方根误差)之间的区别吗?