loss-function相关内容

在TensorFlow 2.0中的自定义损失和渐变代码中获得全部无渐变

我正试图在TensorFlow 2.0中编写一个相当糟糕的基本损失函数。总而言之,我有5门课,我想不对其中任何一门课进行分组,使用一个热编码进行训练。我想让我的模型用5个类中的每一个值来预测每一个输入。然后,我想试着得到两个最高值,如果它们是3或4,我想把它归类为“好”,如果不是“坏”。最后,我希望我的损失是1-精度,在以下情况下,我所说的精度具有真正的积极作用: 1.模型猜中3,真实类猜中3 2 ..
发布时间:2022-07-12 19:10:36 其他开发

对火炬NLLLOS的理解

PyTorch的负对数似然损失nn.NLLLoss定义为: 因此,如果损失是以一批一的标准重量计算的,则损失的公式始终为: -1*(模型对正确类的预测) 示例: 正确类=0 正确类别的模型预测=0.5 损耗=-1*0.5 那么,如果不存在计算损失的对数函数,为什么它被称为负对数似然损失? ​ 推荐答案 实际上没有使用log来计算nn.NLLLoss ..
发布时间:2022-06-28 21:15:17 其他开发

PyTorch中多输出回归问题的均方根损失

我正在训练CNN架构,以使用PyTorch解决回归问题,其中我的输出是20个值的张量。我计划使用RMSE作为模型的损失函数,并尝试使用PyTorch的nn.MSELoss()并使用torch.sqrt()求它的平方根,但在获得结果后感到困惑,我将尽力解释原因。很明显,对于批大小bs,我的输出张量的维数将是[bs , 20]。我尝试实现我自己的AND RMSE函数: def loss_f ..

使用 softmax 将 Keras 中的自定义损失设置为 one-hot

我有一个输出 Softmax 的模型,我想开发一个自定义损失函数.所需的行为是: 1) Softmax 到 one-hot(通常我做 numpy.argmax(softmax_vector) 并在空向量中将该索引设置为 1,但这在损失函数中是不允许的). 2) 将得到的 one-hot 向量乘以我的嵌入矩阵以获得嵌入向量(在我的上下文中:与给定词相关联的词向量,其中词已被标记化并分配给 ..
发布时间:2022-01-02 17:57:41 其他开发

如何在 Keras 中进行逐点分类交叉熵损失?

我有一个生成 4D 输出张量的网络,其中空间维度(~像素)中每个位置的值将被解释为该位置的类概率.换句话说,输出是(num_batches, height, width, num_classes).我有相同大小的标签,其中真正的类被编码为 one-hot.我想使用它来计算 categorical-crossentropy 损失. 问题 #1:K.softmax 函数需要一个 2D 张量 (n ..

keras 结合两个损失与可调权重

这里是详细说明.我有一个两层的 keras 功能模型,输出 x1 和 x2. x1 = Dense(1,activation='relu')(prev_inp1)x2 = Dense(2,activation='relu')(prev_inp2) 我需要使用这些 x1 和 x2,合并/添加它们并像附加图像中那样提出加权损失函数.将“相同的损失"传播到两个分支中.Alpha 可以灵活地随着迭代而 ..

Keras 自定义损失作为多个输出的函数

我使用 keras(一个 convnet)构建了一个自定义架构.该网络有 4 个头,每个头输出不同大小的张量.我正在尝试编写一个自定义损失函数作为这 4 个输出的函数.我之前一直在实施自定义损失,但是每个人头的损失不同,或者每个人头的损失都相同.在这种情况下,我需要组合 4 个输出来计算损失. 我已经习惯了: def custom_loss(y_true, y_pred):返回一些东西模型 ..
发布时间:2021-12-27 17:17:13 其他开发

在 Keras 模型中优化准确性而不是损失

如果我正确理解了损失函数对模型的重要性,它会根据最小化损失值指导模型进行训练.因此,例如,如果我希望我的模型经过训练以获得最小的平均绝对误差,我应该使用 MAE 作为损失函数.例如,为什么有时您会看到有人想要获得尽可能高的准确度,但构建模型以最小化另一个完全不同的函数?例如: model.compile(loss='mean_squared_error', optimizer='sgd', me ..
发布时间:2021-12-19 13:07:57 AI人工智能

Keras 中的自定义损失函数以惩罚误报

我正在研究一个医疗数据集,我试图尽可能减少假阴性.“实际上没有疾病时有疾病"的预测对我来说是可以的,但“实际上有疾病时没有疾病"的预测则不然.也就是说,我对 FP 没问题,但对 FN 没问题. 经过一番研究,我发现了一些方法,比如保持一个班级的更高学习率、使用班级权重、具有特异性/敏感性的集成学习代码>等 我使用诸如 class_weight = {0 : 0.3,1: 0.7} 之类 ..

如何在 Keras 模型中使用 TensorFlow 的采样 softmax 损失函数?

我正在 Keras 中训练语言模型,并希望通过使用采样的 softmax 作为我网络中的最终激活函数来加快训练速度.从 TF 文档来看,我似乎需要为 weights 和 biases 提供参数,但我不确定这些参数的预期输入.似乎我可以在 Keras 中编写一个自定义函数,如下所示: 将 keras.backend 导入为 Kdef sampled_softmax(权重,偏差,y_true,y_p ..
发布时间:2021-12-19 12:42:31 其他开发

如何使用 TensorFlow 后端屏蔽 Keras 中的损失函数?

我正在尝试使用 Keras 的 LSTM 和 TensorFlow 后端实现一个序列到序列的任务.输入是长度可变的英语句子.为了构建一个二维形状的数据集 [batch_number, max_sentence_length],我在行尾添加了 EOF 并用足够的占位符填充每个句子,例如#.然后将句子中的每个字符转换为一个one-hot向量,使数据集具有3-D形状[batch_number, max_ ..
发布时间:2021-12-19 12:34:04 其他开发

训练回归网络时的 NaN 损失

我有一个“one-hot encoding"(全是 1 和 0)的数据矩阵,有 260,000 行和 35 列.我正在使用 Keras 训练一个简单的神经网络来预测连续变量.制作网络的代码如下: model = Sequential()模型.添加(密集(1024,input_shape =(n_train,)))模型.添加(激活('relu'))模型.添加(辍学(0.1))模型.添加(密集(51 ..
发布时间:2021-12-19 12:12:36 Python

在 PyTorch 中添加 L1/L2 正则化?

有什么办法可以在 PyTorch 中添加简单的 L1/L2 正则化?我们可以通过简单地将 data_loss 与 reg_loss 相加来计算正则化损失,但是有没有任何明确的方法,来自 PyTorch 库的任何支持可以更轻松地做到这一点,而无需手动进行? 解决方案 这在 PyTorch 的文档.您可以使用 weight_decay 参数将 L2 损失添加到优化函数中. ..
发布时间:2021-12-14 10:09:08 AI人工智能

如何为 keras 模型使用 tensorflow 自定义损失?

我正在尝试通过使用中间层的表示来实现损失函数.据我所知,Keras 后端自定义损失函数只接受两个输入参数(y_ture 和 y-pred).如何使用 @tf.function 定义损失函数并将其用于已通过 Keras 定义的模型?任何帮助将不胜感激. 解决方案 这是一个将额外变量传递给损失函数的简单解决方法.在我们的例子中,我们传递了其中一层 (x1) 的隐藏输出.这个输出可以用来在损失函 ..

成本函数训练目标与准确度期望目标

当我们训练神经网络时,我们通常使用梯度下降,它依赖于一个连续的、可微的实值成本函数.例如,最终的成本函数可能采用均方误差.或者换句话说,梯度下降隐含地假设最终目标是回归 - 最小化实值误差度量. 有时我们希望神经网络执行分类 - 给定输入,将其分类为两个或多个离散类别.在这种情况下,用户关心的最终目标是分类准确率 - 正确分类的案例百分比. 但是当我们使用神经网络进行分类时,虽然我们的 ..