问题标签 [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.
tensorflow - tf.extract_image_patches 用于 3D 图像
仅适用于2D图像,是否可以扩展到3D图像,这对SSIM损失函数的实现有用吗?
我找不到源代码。有一个类似的功能skimage.util.view_as_windows
,但是,当我尝试将此功能与 tensorflow 作为 keras 中的后端一起使用时,会出现错误。从 numpy 数组到张量的过渡让我很困惑。
python - Keras/theano 中的最大保证金损失
我想在 Keras 中训练一个神经网络(使用 theano 作为后端),每个正样本使用一个负样本,并使用最大边际损失函数:
我有一个神经网络,它接受两个参数i
并j
返回 score base(i,j)
。对于给定i
的,我有一个正样本j
和负样本k
。所以,我想计算以下内容:
在抽象级别,我的代码如下所示:
请注意,XX
在训练期间是无用的。
运行代码时,出现以下错误:
我认为问题在于损失函数的计算。
注意:我尝试过使用XX
原始向量和列向量。但是,错误仍然相同。
可以在此处和此处找到使用 TensorFlow 作为后端的相同问题的解决方案。
编辑1:
如下更改损失函数是可行的(我的意思是它可以正常工作)。但是,我既不知道为什么,也不知道新代码的正确性。
keras - Keras 如何处理分类交叉熵的 log(0)?
我有一个在 MNIST 上训练的神经网络,其损失函数为分类交叉熵。
出于理论目的,我的输出层是 ReLu。因此它的很多输出都是0。
现在我偶然发现了以下问题:
为什么我不会得到很多错误,因为我的输出中肯定会有很多零,我会记录下来。
这里,为方便起见,使用分类交叉熵的公式。
python - TensorFlow:针对当前模型中的损失进行预训练的前向传递
我正在尝试使用在此处找到的 tensorflow 中实现的预训练 FaceNet 模型,以便对当前模型的输出运行前向传递,从而在当前模型上产生新的损失。我不想在 FaceNet 模型中训练权重,所以我会tf.stop_gradient()
在某个时候利用它。
为了在我当前的图表中添加前向传递,我正在导入整个模型结构,network = importlib.import_module(models.inception_resnet_v1))
或多或少遵循链接中的预训练网络的训练方案。因此,在我当前的模型结构中,我添加了如下内容:
然后我通过查看生成数据的 L2 和通过 facenet 推理传递的真实数据来添加我的新损失函数network.inference()
:
然后在训练中我打电话
但是,我得到了很多这样的输出
我只找到了一种在会话中导入训练模型和调用张量的方法。我需要使用类似的东西直接添加到我的模型结构中network.inference(data,...)
。我确信我遗漏了一些明显的东西,但我找不到任何这样的例子。我猜我的问题是:
- 我正在导入错误的模型文件或
- 我没有指定
network
需要恢复的特定变量
关于如何解决这个问题的任何想法?
澄清:
- 我正在使用版本 tf 1.0
- 我正在使用我下载的 ckpt 文件
事实证明,我需要指定网络中需要恢复的特定变量。
Saver 需要指定 var 以指示要恢复的权重。否则,我认为默认情况下会尝试为要训练的模型找到所有可训练的变量权重,但我只需要恢复一个模型。
tensorflow - tf.softmax_cross_entroy_with_logits 的输出未标准化?
我为图像分类(二元分类)实现了一个简单的 cnn 网络。我在 Python 中使用 tensorflow。我使用 tf.softmax_cross_entropy_with logits 作为成本函数。我用模型输出层的非标准化 logits 提供成本函数。函数应该输出归一化的概率,还是我错了?
在训练我的模型期间,我正在打印每个示例的成本。如果模型正确预测输出,则成本等于 0.0,否则成本非常大,未归一化值)。虽然在计算交叉熵之前输入了函数“softmaxes”,但为什么输出未归一化?
customization - 使用 Keras 为损失函数构建自定义指标,但有错误
我正在尝试编写自定义度量函数以在以这种方式编写的编译步骤中设置:
我用这种方式写了 Dice Similarity Coefficient、Positive Predictive Value 和 Similarity:
- FP = 误报
- TP = 真阳性
- FN = 假阴性
当我运行代码时,出现以下错误:
InvalidArgumentError(有关回溯,请参见上文):您必须使用 dtype float [[Node: dense_3_target = Placeholderdtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task 为占位符张量“dense_3_target”提供一个值:0/cpu:0"]]
有人可以解释一下问题出在哪里吗?我哪里错了?
谢谢
tensorflow - 如何将值分配给 Tensorflow 中的指定位置?
我想实现一个 SSIM 损失函数,因为边界被卷积中止,我想保留边界并计算边界像素的 L1 损失。代码是从这里学习的。TensorFlow 的 SSIM / MS-SSIM
比如我们有img1和img2 size [batch,32,32,32,1],还有Guassian 11的window_size,结果ssim map会是[batch,22,22,22,1],L1 map [batch ,32,32,32,1] 如何将 ssim 分配到 L1 的中心?
我收到这样的错误; TypeError: 'Tensor' object does not support item assignment
tensorflow - Keras 和 TensorFlow 中所有这些交叉熵损失之间有什么区别?
所有这些交叉熵损失之间有什么区别?
Keras 在谈论
- 二元交叉熵
- 分类交叉熵
- 稀疏分类交叉熵
虽然 TensorFlow 有
- 使用 logits 的 Softmax 交叉熵
- 带有 logits 的稀疏 softmax 交叉熵
- 带 logits 的 Sigmoid 交叉熵
它们之间有什么区别和关系?它们的典型应用是什么?有什么数学背景?还有其他应该知道的交叉熵类型吗?有没有没有 logits 的交叉熵类型?