loss-function相关内容
我正试图在TensorFlow 2.0中编写一个相当糟糕的基本损失函数。总而言之,我有5门课,我想不对其中任何一门课进行分组,使用一个热编码进行训练。我想让我的模型用5个类中的每一个值来预测每一个输入。然后,我想试着得到两个最高值,如果它们是3或4,我想把它归类为“好”,如果不是“坏”。最后,我希望我的损失是1-精度,在以下情况下,我所说的精度具有真正的积极作用: 1.模型猜中3,真实类猜中3 2
..
PyTorch的负对数似然损失nn.NLLLoss定义为: 因此,如果损失是以一批一的标准重量计算的,则损失的公式始终为: -1*(模型对正确类的预测) 示例: 正确类=0 正确类别的模型预测=0.5 损耗=-1*0.5 那么,如果不存在计算损失的对数函数,为什么它被称为负对数似然损失? 推荐答案 实际上没有使用log来计算nn.NLLLoss
..
我正在试验MultiOutputRegressor(),我想知道一旦测量到损耗后,是否有可能达到多输出回归任务的Trains&;Testset上的损耗曲线。 我尝试的内容: import matplotlib.pyplot as plt import numpy as np #from sklearn import datasets, ensemble #from sklearn
..
我正在训练CNN架构,以使用PyTorch解决回归问题,其中我的输出是20个值的张量。我计划使用RMSE作为模型的损失函数,并尝试使用PyTorch的nn.MSELoss()并使用torch.sqrt()求它的平方根,但在获得结果后感到困惑,我将尽力解释原因。很明显,对于批大小bs,我的输出张量的维数将是[bs , 20]。我尝试实现我自己的AND RMSE函数: def loss_f
..
我对 PyTorch 和 Huggingface-transformers 比较陌生,并在这个 Kaggle 上试验了 DistillBertForSequenceClassification-数据集. from Transformers import DistilBertForSequenceClassification导入 torch.optim 作为 optim将 torch.nn 导入为
..
默认情况下,PyTorch 的 cross_entropy 将 logits(模型的原始输出)作为输入.我知道 CrossEntropyLoss 将 LogSoftmax (log(softmax(x))) 和 NLLLoss(负对数似然损失)组合在一个类中.所以,我想我可以使用 NLLLoss 从概率中获得交叉熵损失,如下所示: 真实标签:[1, 0, 1] 概率:[0.1, 0.9],
..
我有一个输出 Softmax 的模型,我想开发一个自定义损失函数.所需的行为是: 1) Softmax 到 one-hot(通常我做 numpy.argmax(softmax_vector) 并在空向量中将该索引设置为 1,但这在损失函数中是不允许的). 2) 将得到的 one-hot 向量乘以我的嵌入矩阵以获得嵌入向量(在我的上下文中:与给定词相关联的词向量,其中词已被标记化并分配给
..
我有一个生成 4D 输出张量的网络,其中空间维度(~像素)中每个位置的值将被解释为该位置的类概率.换句话说,输出是(num_batches, height, width, num_classes).我有相同大小的标签,其中真正的类被编码为 one-hot.我想使用它来计算 categorical-crossentropy 损失. 问题 #1:K.softmax 函数需要一个 2D 张量 (n
..
我想在 keras 中创建以下损失函数: Loss = mse + double_derivative(y_pred,x_train) 我无法合并衍生项.我试过 K.gradients(K.gradients(y_pred,x_train),x_train) 但它没有帮助. 我收到错误消息: AttributeError: 'NoneType' 对象没有属性 'op' def _
..
这里是详细说明.我有一个两层的 keras 功能模型,输出 x1 和 x2. x1 = Dense(1,activation='relu')(prev_inp1)x2 = Dense(2,activation='relu')(prev_inp2) 我需要使用这些 x1 和 x2,合并/添加它们并像附加图像中那样提出加权损失函数.将“相同的损失"传播到两个分支中.Alpha 可以灵活地随着迭代而
..
我使用 keras(一个 convnet)构建了一个自定义架构.该网络有 4 个头,每个头输出不同大小的张量.我正在尝试编写一个自定义损失函数作为这 4 个输出的函数.我之前一直在实施自定义损失,但是每个人头的损失不同,或者每个人头的损失都相同.在这种情况下,我需要组合 4 个输出来计算损失. 我已经习惯了: def custom_loss(y_true, y_pred):返回一些东西模型
..
如果我正确理解了损失函数对模型的重要性,它会根据最小化损失值指导模型进行训练.因此,例如,如果我希望我的模型经过训练以获得最小的平均绝对误差,我应该使用 MAE 作为损失函数.例如,为什么有时您会看到有人想要获得尽可能高的准确度,但构建模型以最小化另一个完全不同的函数?例如: model.compile(loss='mean_squared_error', optimizer='sgd', me
..
我正在研究一个医疗数据集,我试图尽可能减少假阴性.“实际上没有疾病时有疾病"的预测对我来说是可以的,但“实际上有疾病时没有疾病"的预测则不然.也就是说,我对 FP 没问题,但对 FN 没问题. 经过一番研究,我发现了一些方法,比如保持一个班级的更高学习率、使用班级权重、具有特异性/敏感性的集成学习代码>等 我使用诸如 class_weight = {0 : 0.3,1: 0.7} 之类
..
我正在 Keras 中训练语言模型,并希望通过使用采样的 softmax 作为我网络中的最终激活函数来加快训练速度.从 TF 文档来看,我似乎需要为 weights 和 biases 提供参数,但我不确定这些参数的预期输入.似乎我可以在 Keras 中编写一个自定义函数,如下所示: 将 keras.backend 导入为 Kdef sampled_softmax(权重,偏差,y_true,y_p
..
我正在尝试使用 Keras 的 LSTM 和 TensorFlow 后端实现一个序列到序列的任务.输入是长度可变的英语句子.为了构建一个二维形状的数据集 [batch_number, max_sentence_length],我在行尾添加了 EOF 并用足够的占位符填充每个句子,例如#.然后将句子中的每个字符转换为一个one-hot向量,使数据集具有3-D形状[batch_number, max_
..
如果我有类似的东西: model = Model(inputs = input,outputs = [y1,y2])l1 = 0.5l2 = 0.3model.compile(loss = [loss1,loss2], loss_weights = [l1,l2], ...) Keras 用loss 怎么做得到最终的loss?是不是类似: final_loss = l1*loss1 + l2
..
我有一个“one-hot encoding"(全是 1 和 0)的数据矩阵,有 260,000 行和 35 列.我正在使用 Keras 训练一个简单的神经网络来预测连续变量.制作网络的代码如下: model = Sequential()模型.添加(密集(1024,input_shape =(n_train,)))模型.添加(激活('relu'))模型.添加(辍学(0.1))模型.添加(密集(51
..
有什么办法可以在 PyTorch 中添加简单的 L1/L2 正则化?我们可以通过简单地将 data_loss 与 reg_loss 相加来计算正则化损失,但是有没有任何明确的方法,来自 PyTorch 库的任何支持可以更轻松地做到这一点,而无需手动进行? 解决方案 这在 PyTorch 的文档.您可以使用 weight_decay 参数将 L2 损失添加到优化函数中.
..
我正在尝试通过使用中间层的表示来实现损失函数.据我所知,Keras 后端自定义损失函数只接受两个输入参数(y_ture 和 y-pred).如何使用 @tf.function 定义损失函数并将其用于已通过 Keras 定义的模型?任何帮助将不胜感激. 解决方案 这是一个将额外变量传递给损失函数的简单解决方法.在我们的例子中,我们传递了其中一层 (x1) 的隐藏输出.这个输出可以用来在损失函
..
当我们训练神经网络时,我们通常使用梯度下降,它依赖于一个连续的、可微的实值成本函数.例如,最终的成本函数可能采用均方误差.或者换句话说,梯度下降隐含地假设最终目标是回归 - 最小化实值误差度量. 有时我们希望神经网络执行分类 - 给定输入,将其分类为两个或多个离散类别.在这种情况下,用户关心的最终目标是分类准确率 - 正确分类的案例百分比. 但是当我们使用神经网络进行分类时,虽然我们的
..