- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 keras 中模拟 pytorch 神经网络。
我确信我的 keras 版本的神经网络与 pytorch 中的非常接近,但在训练期间,我看到 pytorch 网络的损失值远低于 keras 网络的损失值。我想知道这是不是因为我没有正确复制keras中的pytorch网络或者两个框架中的损失计算不同。
Pytorch 损失定义:
loss_function = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=args.lr, momentum=0.9, weight_decay=5e-4)
sgd = optimizers.SGD(lr=.1, momentum=0.9, nesterov=True)
resnet.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['categorical_accuracy'])
kernel_regularizer=regularizers.l2(5e-4)
实现了,我也用过
he_uniform
根据
source code,我认为初始化是 pytorch 中的默认设置.
128
.
4.1209
的损失值减少到
0.5
左右.在 keras 中,它从 30 开始,然后下降到
2.5
.
最佳答案
PyTorch CrossEntropyLoss
接受每个类别的非标准化分数,即不是概率( source )。 Keras categorical_crossentropy
默认使用 from_logits=False
这意味着它假定 y_pred
包含概率(不是原始分数)( source )。
在 PyTorch 中,如果您使用 CrossEntropyLoss
,你不应该在最后使用 softmax/sigmoid 层。在 keras 中,您可以使用或不使用它,但设置 from_logits
因此。
关于keras - pytorch 的交叉熵损失与 keras 的 "categorical_crossentropy"不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61437961/
我正在尝试使用 ML5 库在我正在构建的 React 应用程序中进行分类。 我的浏览器出现以下错误 错误:您在使用损失“categorical_crossentropy”时传递形状为 11342,1
我正在构建一个多类 CNN 模型,但由于损失形状错误,我无法编译该模型。 输出层和标签都应具有正确的形状;标签为 (m, 1, 3),最终密集层包含 3 个具有 softmax 激活的感知 loss=
我有一个 Keras 模型,用于解决多类分类问题。我这样做: model.compile( loss='categorical_crossentropy', optimizer='ad
在 Tensorflow2 中,我可以使用类 tf.keras.losses.CategoricalCrossentropy ( defined here ) 或函数 categorical_cros
sparse_categorical_crossentropy 和 categorical_crossentropy 有什么区别?什么时候应该使用一种损失而不是另一种?例如,这些损失是否适合线性回归?
我正在尝试应用蒸馏的概念,基本上是为了训练一个新的较小的网络,使其与原始网络的功能相同,但计算量更少。 我有每个样本的 softmax 输出而不是 logits。 我的问题是,分类交叉熵损失函数是如何
我正在使用自定义训练循环。 tf.keras.losses.categorical_crossentropy返回的损失是我假设的数组 (1,batch_size) .这是它应该返回的值还是单个值? 在
我正在使用深度神经网络进行二元类分类。每当我使用binary_crossentropy时,我的模型都没有给出很好的准确性(它更接近随机预测)。但是,如果我通过将输出层的大小设置为 2 来使用分类交叉熵
我正在训练一个文本分类模型,其中输入数据由 4096 个词频 - 逆向文档频率组成。 我的输出是 416 个可能的类别。每条数据有 3 个类别,所以 413 个零的数组中有 3 个(one-hot-e
在使用 TensorFlow 一段时间后,我阅读了一些 Keras 教程并实现了一些示例。我找到了几个使用 keras.losses.binary_crossentropy 作为损失函数的卷积自动编码
我正在尝试在 keras 中模拟 pytorch 神经网络。 我确信我的 keras 版本的神经网络与 pytorch 中的非常接近,但在训练期间,我看到 pytorch 网络的损失值远低于 kera
我正在尝试训练 CNN 按主题对文本进行分类。当我使用二元交叉熵时,我获得了约 80% 的准确度,而使用分类交叉熵时,我获得了约 50% 的准确度。 我不明白这是为什么。这是一个多类问题,这是否意味着
努力使子类损失函数在 Tensorflow (2.2.0) 中工作。 最初尝试了此代码(我知道它对其他人有用 - 请参阅 https://github.com/keras-team/keras/iss
我有一个专为多分类问题设计的 LSTM 模型。训练时,准确率实际上是 1.00。但仍然返回小的损失值。这是什么意思?所有目标都被正确预测。为什么损失值不能为零? adadelta = Adadelta
我正在学习如何使用 Keras 创建卷积神经网络。我正在尝试获得 MNIST 数据集的高精度。 显然categorical_crossentropy适用于2个以上的类,binary_crossentr
导入库和模型, from __future__ import print_function import keras from keras.datasets import mnist from ker
我正在尝试对 theano 中的多重损失求和,但我无法使其工作。我正在使用分类交叉熵。 这是我的代码: import numpy as np import theano import theano.t
我正在关注 TensorFlow basic classification example使用“入门”文档中提供的 Keras API。我按原样完成了教程,但是如果我将损失函数从 sparse_cat
我是一名优秀的程序员,十分优秀!