未知的底部 blob“数据”(层“conv1”,底部索引 0)

2024-01-04

尝试在我自己的数据集上训练 LeNet。我从长一维矢量数据集生成了 HD​​F5 文件,并创建了 HDF5 数据层,如下所示:我对顶部 blob 的命名与生成 HDF5 时的命名相同。

name: "Test_net"
layer {
  name: "data"
  type: "HDF5Data"
  top: "Inputdata"
  top: "label"
  hdf5_data_param {
    source:"~/*_hdf5_train.txt"
    batch_size: 32
  }
  include{phase: TRAIN}
}
layer {
  name: "data2"
  type: "HDF5Data"
  top: "Inputdata"
  top: "label"
  hdf5_data_param {
    source:"~/*_hdf5_test.txt"
    batch_size: 32
  }
  include{phase: TEST}
}
layer {
  name: "conv1"
  type: "convolution"
  bottom: "data"
  top: "conv1"
  param {lr_mult:1}
  param {lr_mult:2}
  convolution_param{
    num_output: 20
    kernel_h: 1
    kernel_w: 5
    stride_h: 1
    stride_w: 1
    weight_filler {
      type: "xavier"     
    }
    bias_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "pool1"
  type: "pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param{
    pool: MAX
    kernel_h: 1
    kernel_w: 2
    stride_h: 1
    stride_w: 2
  }
}
# more layers here...
layer{
  name: "loss"
  type: "SigmoidCrossEntropyLoss"
  bottom: "ip2"
  bottom: "label"
  top: "loss"
}

但是当我尝试训练时出现以下错误insert_split.cpp.

insert_splits.cpp:29] Unknown bottom blob 'data' (layer 'conv1',   bottom     index 0)
  *** Check failure stack trace: ***
  @     0x7f19d7e735cd  google::LogMessage::Fail()
  @     0x7f19d7e75433  google::LogMessage::SendToLog()
  @     0x7f19d7e7315b  google::LogMessage::Flush()
  @     0x7f19d7e75e1e  google::LogMessageFatal::~LogMessageFatal()
  @     0x7f19d82684dc  caffe::InsertSplits()
  @     0x7f19d8230d5e  caffe::Net<>::Init()
  @     0x7f19d8233f21  caffe::Net<>::Net()
  @     0x7f19d829c68a  caffe::Solver<>::InitTrainNet()
  @     0x7f19d829d9f7  caffe::Solver<>::Init()
  @     0x7f19d829dd9a  caffe::Solver<>::Solver()
  @     0x7f19d8211683  caffe::Creator_SGDSolver<>()
  @           0x40a6c9  train()
  @           0x4071c0  main
  @     0x7f19d6dc8830  __libc_start_main
  @           0x4079e9  _start
  @              (nil)  (unknown)
 Aborted (core dumped)

我做错了什么?

Cheers,


您的数据层输出两个“blob”:"label" and "Inputdata". Your "conv1"层期望作为输入名为“blob”"data"。 Caffe 不知道你的意思"Inputdata" and "data"成为同一个斑点...
现在,由于您已经保存了 hdf5 文件"Inputdata"名称,您不能在"HDF5Data"层,你能做的就是改变"data" to "Inputdata"在“底部”"conv1" layer.


PS,
你的损失层需要两个“底部”:ip2 and label你忘了喂食。

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

未知的底部 blob“数据”(层“conv1”,底部索引 0) 的相关文章

随机推荐

  • 如何删除C++中类的所有隐式(默认)方法?

    C 编译器在一定条件下为类添加隐式默认构造函数 复制构造函数 析构函数 转换运算符 赋值运算符等以及其他隐式方法 如何以最短的方式禁用 删除所有可能的隐式方法 我不希望我的类不可复制 我只想禁用这些默认方法 以便编译器抛出编译错误 然后我自
  • Express 3.x 和 socket.io 教程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一个很好的入门教程 使用 Express 3 x 将 socket io 和express 结合
  • 在 iOS 模拟器上显示 GMSMarkers 时出现 GMSThreadException

    我正在开发一个应用程序来在 GMSMapView 上显示大约 200 个 GMSMarkers 我尝试了两种显示标记的方法 方法1有点慢 但没有出现错误 但是方法2在真机上运行顺利 但在iOS模拟器上测试时出现GMSThreadExcept
  • 使用 vim 读取 gnu-screen 日志

    最近我发现了一个很棒的终端多路复用工具 称为 gnu screen 我对它完全满意 但我遇到了一个我想改进的不便之处 C a H 命令使屏幕将所有内容记录到名为 screenlog 的日志文件中 但以一种奇怪的方式对控制字符进行编码 例如
  • 如何检查地址是否在 Google Maps API 上的区域内

    我有一个地址字符串 例如 12 Swiss Ave 冈维尔 旺加努伊 新西兰 给定这个地址 我需要确定该地址是在新西兰的北岛还是南岛内 如果我将地址传递给谷歌地图 API 我得到的数据如下 不幸的是 它没有告诉我它在哪个岛 那么 我该如何检
  • 有向图和无向图有什么区别

    这些基本类型之间有什么区别 在附图中我看到有向有箭头 但是有向图中的这些箭头以及无向图中没有箭头到底意味着什么 它的意思正是它听起来的样子 在有向图中 方向很重要 即边 2 gt 3 表示边是有向的 只有从 2 到 3 的边 没有从 3 到
  • 在matlab中将GML文件转换为邻接矩阵

    我有一个GML http en wikipedia org wiki Graph Modelling Language有向图文件 政治博客 http www personal umich edu mejn netdata polblogs
  • 结合 grid.arrange 删除两个 ggplot 之间的所有空间

    我想粘贴两个图 主题之间没有任何空间 因此它们共享一个轴 Given p1 lt qplot 1 1 xlab p1 lt p1 theme legend position none axis text x element blank ax
  • struts 2 在调用堆栈中找不到名称为[excelStream]的java.io.InputStream

    excelStream我正在尝试下载 Excel 文件 在我的动作课上 public class ActivityTrackerExlReportAction extends BaseAction private InputStream e
  • 如何在 fop 生成的 pdf 中显示预先格式化的文本?

    有谁知道如何显示预格式化的 html 文本 例如 ol li item 1 li li item 2 li li item 3 li ol 在用 fop 生成的 pdf 中 Thanks 这个 XSLT 1 0
  • MFC:CFormView 派生类的 OnInitialUpdate 函数

    我的 CFormView 派生类的结构如下 class FormViewClass public CFormView FormViewClass void Initialize virtual void OnInitialUpdate 理想
  • 了解开关条件下的寄存器用法

    我有一个 C 语言的开关条件代码和汇编代码 但对我来说设置什么似乎非常随意 edx或eax或ecx 如何区分 edx epx ecx ebp 之间的区别 就连教科书也没有给我足够的解释 include
  • 作为启动 RDP 程序运行时如何停止初始表单最大化?

    当主机和客户端都是 XP Pro 计算机时 在终端服务 远程桌面 会话中启动时 我的 VB6 应用程序中的启动表单表现得很奇怪 该表单本来是要居中的 但实际上它最大化了 并且其内容位于左上角 看起来很奇怪 请注意 只有当应用程序路径用于 R
  • 在 VTable 上下文中,虚拟方法调用和直接方法调用有什么区别?

    在 VTable 上下文中 虚拟方法调用和直接方法调用有什么区别 在虚拟和直接调用的情况下如何解决方法引用 理论上 不存在这样的东西 C 标准没有定义它 定义了虚拟调用 但没有指定它们必须如何工作 不存在像VTable这样的东西 在实践中
  • 计算 R 中矩阵的成对差异数

    我有以下矩阵 0 1 0 0 0 1 0 0 Row A 0 1 0 0 0 0 1 0 Row B 0 1 0 0 0 0 0 0 Row C 0 0 1 0 0 0 0 0 Row D 我想制作一个新的矩阵 显示每行之间的成对差异 例如
  • GHC生成的.hi、.p_hi和.dyn_hi文件有什么区别

    我正在尝试减少包含 Nix 派生的存档的大小 我注意到每个模块都有 3 个文件 hi p hi 和 dyn hi 大小都相似 ghc 提示 解释器只需要 hi 如果我删除其余变量 则什么也不会发生 那么 p hi 和 dyn hi 是沙袋吗
  • 在 Django 中使用 formset_factory

    我是 Django 的新用户 我使用以下代码生成表单 class GetMachine forms Form Machine Name forms CharField max length 20 Number of lines forms
  • 如何限制Python 3中多线程程序中的API调用?

    经过大量研究 我不确定最佳实践是什么 我的以下想法是否合适 我想要访问一个 API 该 API 将我可以进行的调用总数限制为每分钟 50 次 我的程序有多个独立运行的线程 如何限制我的程序保持在阈值以下 我的想法是创建一个队列 并每 X 秒
  • 优化与未优化构建的 KCachegrind 输出

    I run valgrind tool callgrind executable在由以下代码生成的可执行文件上 include
  • 未知的底部 blob“数据”(层“conv1”,底部索引 0)

    尝试在我自己的数据集上训练 LeNet 我从长一维矢量数据集生成了 HD F5 文件 并创建了 HDF5 数据层 如下所示 我对顶部 blob 的命名与生成 HDF5 时的命名相同 name Test net layer name data