【发布时间】:2016-07-14 02:17:12
【问题描述】:
我正在尝试对 Caffe 进行一些修改,以便接受我的 16 位数据。
我成功地创建了一个 lmdb 数据集,其中填充了 16 位无符号、未编码的 256x256 图像,而不是通常的 caffe 8 位无符号数据,保存为“字符串”,就像可以使用 image_convert 或 DIGITS 实用程序创建的通常的 8 位 lmdb 一样。
我更改了 io.py 函数 array_to_datum 和 datum_to_array 以便在 16 位“字符串”数据中创建这个 lmdb。
现在,如果我在 caffe 上使用这个 lmdb(只有 4 个类),网络会运行但不会收敛。我强烈怀疑没有正确读取我的数据。
问题是,io.py 函数 array_to_blobproto 和 blobproto_to_array 似乎在内部数据内容之间没有任何区别,而且我找不到应该修改以处理 16 位的代码。
谁能给我一个关于在哪里工作的提示?
编辑: 在代码中乱七八糟,我认为如果我想直接在 png 上工作而不通过 lmdb,那么一种可能性应该是创建一个新的数据层或一个新的图像数据层。但是尝试修改 C++ 代码对我来说并不是一件容易的事,尤其是。我不能轻易地跟踪代码中的数据流。我看到新层可以用python编写。你认为新的输入数据层可以很好地工作还是会降低 cnn 的性能?
【问题讨论】:
标签: machine-learning neural-network deep-learning caffe lmdb