Caffe 准确率大于 100%

2024-03-16

我正在构建一个,但是当我使用上提供的自定义火车功能时莱内特示例 http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/01-learning-lenet.ipynb当批量大小大于 110 时,我的准确率会大于 1 (100%)。

如果我使用批量大小 32,则准确率可达 30%。批量大小等于 64,我的净准确度是 64。批量大小等于 128,准确度是 1.2。

我的图像是 32x32。 训练数据集:56 张中性面孔图像。 60 张惊喜面孔图像。测试数据集:15 张中性面孔图像。 15张惊喜面孔的图像。

这是我的代码:

def train(solver):

niter = 200
test_interval = 25 

train_loss = zeros(niter)
test_acc = zeros(int(np.ceil(niter / test_interval)))
output = zeros((niter, 32, 2))

for it in range(niter):
    solver.step(1)
    train_loss[it] = solver.net.blobs['loss'].data
    solver.test_nets[0].forward(start='conv1')
    output[it] = solver.test_nets[0].blobs['ip2'].data[:32]
    if it % test_interval == 0:
        print 'Iteration', it, 'testing...'

        correct = 0

        for test_it in range(100):
            solver.test_nets[0].forward()
            correct += sum(solver.test_nets[0].blobs['ip2'].data.argmax(1) == solver.test_nets[0].blobs['label'].data)

        test_acc[it // test_interval] = correct / 1e4

那么,我的代码有什么问题吗?


在您的测试代码中,您运行了 100 次迭代(for test_it in range(100)),在您计算的每次迭代中correct作为示例的数量batch这是正确的。然后将该数字除以 1e4。

假设您的模型非常好并且预测率几乎为 100%。然后,在每次 100 次迭代中批量大小为 32,您将添加 32correct,得到 3200。然后将其除以 1e4,得到 0.32,这几乎与您所看到的一致(您的数字稍微少一些,因为有时您的模型确实会错误预测目标)。

要修复它,您可以替换

test_acc[it // test_interval] = correct / 1e4

with

test_acc[it // test_interval] = correct / (100.0 * batch_size)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Caffe 准确率大于 100% 的相关文章

  • 尝试理解 Pytorch 的 LSTM 实现

    我有一个包含 1000 个示例的数据集 其中每个示例都有5特征 a b c d e 我想喂7LSTM 的示例 以便它预测第 8 天的特征 a 阅读 nn LSTM 的 Pytorchs 文档 我得出以下结论 input size 5 hid
  • Tensorflow 中的平衡准确度分数

    我正在为高度不平衡的分类问题实现 CNN 并且我想在张量流中实现自定义指标以使用 选择最佳模型 回调 具体来说 我想实现平衡的准确度分数 这是每个类别的召回率的平均值 请参阅 sklearn 实现here https scikit lear
  • Tensorflow - 保存模型

    我有以下代码 在尝试保存模型时出现错误 我可能做错了什么 我该如何解决这个问题 import tensorflow as tf data labels cifar tools read data C Users abc Desktop Te
  • 重塑图像数组时感到困惑

    目前我正在尝试运行 ConvNet 随后将输入神经网络的每张图像都存储为列表 但目前该列表是使用三个 for 循环创建的 看一看 im Image open os path join p input directory item pix i
  • 在 python 上使用 TensorRT .engine 文件进行推理

    我使用 Nvidia 的迁移学习工具包 TLT 进行训练 然后使用 tlt converter 将 etlt 模型转换为 engine 文件 我想使用这个 engine 文件在 python 中进行推理 但由于我使用 TLT 进行训练 因此
  • pytorch 中的 keras.layers.Masking 相当于什么?

    我有时间序列序列 我需要通过将零填充到矩阵中并在 keras 中使用 keras layers Masking 来将序列的长度固定为一个数字 我可以忽略这些填充的零以进行进一步的计算 我想知道它怎么可能在 Pytorch 中完成 要么我需要
  • CNN 模型分类错误:logits 和标签必须可广播:logits_size=[32,10] labels_size=[32,13]

    这里我尝试在图像分类上运行 CNN 模型 这是批量大小和 13 个标签 Image batch shape 32 32 32 3 Label batch shape 32 13 Watch Back Watch Chargers Watch
  • 在Tensorflow中,sampled_softmax_loss和softmax_cross_entropy_with_logits有什么区别

    在张量流中 有一些方法称为softmax cross entropy with logits https www tensorflow org versions master api docs python tf nn softmax cr
  • 使 CUDA 内存不足

    我正在尝试训练网络 但我明白了 我将批量大小设置为 300 并收到此错误 但即使我将其减少到 100 我仍然收到此错误 更令人沮丧的是 在 1200 个图像上运行 10 epoch 大约需要 40 分钟 有什么建议吗 错了 我怎样才能加快这
  • 随着新数据的出现,如何增量训练 FANN?

    我使用 FANN 库构建并训练了一个神经网络 这是初步培训 大部分数据将在线收集 当在线数据可用时我想要improve使用这些新数据的网络 不是重新训练 而是使之前的训练更加准确 如何用FANN来做这种增量训练呢 从更改为的文件进行训练 s
  • Keras模型拟合多项式

    我从四次多项式生成了一些数据 并希望在 Keras 中创建一个回归模型来拟合该多项式 问题是拟合后的预测似乎基本上是线性的 由于这是我第一次使用神经网络 我认为我犯了一个非常微不足道且愚蠢的错误 这是我的代码 model Sequentia
  • 如何使用keras打印神经网络中预测类的名称?

    我在 keras 中使用预先训练的模型 最终将类索引预测为一些整数值 但我似乎不明白如何打印这些类的名称 我使用的模型是 ResNet 50 看一下https martin thoma com image classification ht
  • Google Inceptionism:按类别获取图像

    在著名的 Google Inceptionism 文章中 http googleresearch blogspot jp 2015 06 inceptionism going deeper into neural html http goo
  • 现代 CNN(卷积神经网络)作为 DetectNet 旋转不变吗?

    众所周知 用于目标检测的 nVidia DetectNet CNN 卷积神经网络 基于 Yolo DenseBox 的方法 https devblogs nvidia com parallelforall deep learning obj
  • 如何更新反卷积层的权重?

    我正在尝试开发一个反卷积层 或者准确地说是转置卷积层 在前向传递中 我进行了完全卷积 零填充卷积 在向后传递中 我进行有效的卷积 没有填充的卷积 以将错误传递到前一层 偏差的梯度很容易计算 只需对多余维度进行平均即可 问题是我不知道如何更新
  • 带有 TF 后端的 Keras:获取输出相对于输入的梯度

    我有一个非常简单的 Keras MLP 并且我正在尝试获取输出相对于输入的梯度 我正在使用以下代码 regressor Sequential Dense 32 input shape n features activation relu D
  • 3D 卷积神经网络输入形状

    我在使用 3D CNN 提供数据时遇到问题Keras http keras io和 Python 对 3D 形状进行分类 我有一个文件夹 其中包含一些 JSON 格式的模型 我将这些模型读入 Numpy 数组 模型为 25 25 25 表示
  • 神经网络的局部逆

    我有一个带有 N 个输入节点和 N 个输出节点的神经网络 可能还有多个隐藏层和循环 但让我们先忘记这些 神经网络的目标是学习一个N维变量Y 给定N维值X 假设神经网络的输出是Y 学习后应该接近Y 我的问题是 是否有可能得到输出 Y 的神经网
  • 结合两个 CNN

    我想在 Keras 中将两个 CNN 合并为一个 我的意思是我希望神经网络拍摄两张图像并在单独的 CNN 中处理每一张图像 然后将它们连接在一起进入扁平化层并使用全连接层来做最后的工作 我做了什么 Start With First Bran
  • 如何以 HDF5 格式提供 caffe 多标签数据?

    我想将 caffe 与矢量标签一起使用 而不是整数 我检查了一些答案 似乎 HDF5 是更好的方法 但后来我陷入了这样的错误 precision layer cpp 34 检查失败 outer num inner num bottom 1

随机推荐