Caffe Python 输入层,设置数据类型为uint8

Caffe Python Layer for input, set data type to uint8

我正在尝试在 caffe 中训练 CNN。我想做大量的数据扩充,所以我使用 "Python" 层作为输入,正如 .

所建议的

但是,我从日志中看到 Caffe 对我的所有数据使用数据类型 float32。这真的很浪费,因为我只处理 8 位整数。有没有办法告诉 caffe 使用 dtype='uint8'?

我试图在设置顶部时对数据进行类型转换:

top[0].data[...] = someArray.astype(np.uint8, copy=False)

但这不起作用。

有什么建议吗?

据我所知,caffe 当前编译为仅支持 float32 或 float64。我想 lmdb/leveldb 数据可以存储为 uint8 格式,但 caffe 在读取时会在内部将其转换为 float32
事实上,你的输入数据是 uint8 并不意味着整个处理保持这种方式,在第一个 convolution/InnerProduct 层,数据与浮点数相乘,不能再保证保持 uint8.
所以,我想你应该忍受输入层的小 space 浪费并放弃转换为 uint8.