gpt4 book ai didi

machine-learning - 修改 Caffe 以接受 lmdb 内的 16 位数据

转载 作者:行者123 更新时间:2023-11-30 08:49:57 25 4
gpt4 key购买 nike

我正在尝试对 Caffe 进行一些修改以接受我的 16 位数据。
我成功创建了一个 lmdb 数据集,其中填充了 16 位未签名、未编码的 256x256 图像,而不是通常的 caffe 8 位无符号数据,保存为“字符串”,就像可以使用 image_convert 创建的通常 8 位 lmdb 一样> 或 DIGITS 实用程序。
我更改了 io.py 函数 array_to_datumdatum_to_array,以便以 16 位“字符串”数据创建此 lmdb。现在,如果我在 caffe 上使用这个 lmdb(仅 4 个类),网络会运行但不会收敛。我强烈怀疑没有正确读取我的数据。问题是, io.py 函数 array_to_blobprotoblobproto_to_array 似乎没有对内部数据内容进行任何区分,而且我找不到我应该修改代码来处理 16 位。
谁能给我一个提示,告诉我该在哪里工作?

编辑:在代码中乱搞,我认为如果我想直接处理 png 而不通过 lmdb,一种可能性应该是创建一个新的数据层或新的图像数据层。但尝试修改 C++ 代码对我来说并不是一件简单的任务,尤其是。我无法轻松跟踪代码内的数据流。我看到新层可以用 python 编写。您认为新的输入数据层可以很好地工作还是会降低 cnn 的性能?

最佳答案

我对转换和调整 caffe/lmdb 接口(interface)不太了解,但如果您不能 100% 确定自己正在做的事情,那么这似乎是一条非常危险的道路。
例如,您更改了 python 接口(interface)中的 io 函数,但我不认为 caffe 在从命令行运行时使用此接口(interface)(例如 $CAFFE_ROOT/build/tools/caffe train ... )。你有没有研究过 io.cpp 中的 cpp io 函数文件?

我强烈建议使用替代路径:使用 hdf5 二进制输入而不是 lmdb。
你可以将你需要的16位图像转换为float32并将它们存储在hdf5文件中,然后通过"HDF5Data"将它们输入到caffe中层。

了解有关 hdf5 和 caffe 的更多信息 in this thread .

关于machine-learning - 修改 Caffe 以接受 lmdb 内的 16 位数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36234946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com