ラベルがスカラではなく、各ラベルが(1、K)ベクトルであり、Kがクラスの数である、Pythonでlmdbデータを作成したいとします。具体的には、ラベルのベクトルを使用すると、1Pythonを使用したLMDBデータの行列としてのラベル
を持って対応するクラスのインデックスを除いてどこでもゼロを持っている私は、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
をしかし、私はy[i]
がnumpyのである。このエラーTypeError: only length-1 arrays can be converted to Python scalars
を得ました(1、k)ベクトルを生成する。
私はまた、caffeがそのような形式のラベルを受け入れるかどうか疑問に思っています。
すべてのヘルプは非常に