gpt4 book ai didi

python - 使用 python 将标签标记为 LMDB 数据中的矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:08 25 4
gpt4 key购买 nike

我想在 python 中创建 lmdb 数据,其中标签不是标量,但每个标签是 (1,K) 向量,K 是类的数量。更具体地说,除了相应的类索引为 1 之外,标签向量到处都是零。

我在 python 中测试了以下代码:

with env.begin(write=True) as txn:
for i in range(N):
datum = caffe.proto.caffe_pb2.Datum()
datum.channels = X.shape[1]
datum.height = X.shape[2]
datum.width = X.shape[3]
datum.data = X[i].tobytes() # or .tostring() if numpy < 1.9
datum.label = int(y[i])
str_id = '{:08}'.format(i)
txn.put(str_id.encode('ascii'), datum.SerializeToString())
print i+1

但是我得到了这个错误TypeError: only length-1 arrays can be conversion to Python scalars其中y[i]是一个numpy (1,k)向量如上所述。

我也想知道caffe是否会接受这种格式的标签。

任何帮助将不胜感激

最佳答案

是的,caffe支持将numpy数组转换为datum,然后您可以将datum放入lmdb。

使用caffe.io.array_to_datum(numpy_array)将numpy_array转换为datum,注意numpy_array必须有4个轴,所以如果你想将一个向量放入lmdb中,你应该初始化一个numpy_array 形状为 [1,1,1,M],而 M 是向量的长度。

here是一个将图像/ map 对写入 lmdb 的工具,可以将其馈送到 caffe 网络。

关于python - 使用 python 将标签标记为 LMDB 数据中的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604815/

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