Caffeを用いてCIFAR-100を使って学習させ、画像の判別をしたいと思っています。
訓練データとテストデータはHDF5の形式を用いて学習を行いました。次に判別器を作りたいと思うのですが、HDF5ファイルをどのようにして使えばいいのかわかりません。
SlideShare(https://www.slideshare.net/yasuyukisugai/deep-learningcaffe)に載っている以下の判別器を参考にしているのですが、
python
1import sys 2import caffe 3from caffe.proto import caffe_pb2 4import numpy 5 6cifar_map = { 7 0: "airplane", 8 1: "automobile", 9 2: "bird", 10 3: "cat", 11 4: "deer", 12 5: "dog", 13 6: "frog", 14 7: "horse", 15 8: "ship", 16 9: "truck" 17} 18 19mean_blob = caffe_pb2.BlobProto() 20with open('Caffe/examples/cifar10/mean.binaryproto') as f: 21 mean_blob.ParseFromString(f.read()) 22 23mean_array = numpy.asarray(mean_blob.data, dtype=numpy.float32).reshape( 24 (mean_blob.channels, mean_blob.height, mean_blob.width) 25) 26 27classifier = caffe.Classifier( 28 'Caffe/examples/cifar10/cifar10_quick.prototxt', 29 'Caffe/examples/cifar10/cifar10_quick_iter_4000.caffemodel', 30 mean=mean_array, 31 raw_scale=255) 32 33 34image = caffe.io.load_image(sys.argv[1]) 35predictions = classifier.predict([image], oversample=False) 36answer = numpy.argmax(predictions) 37print(predictions) 38print(str(answer) + ":" + cifar_map[answer]) 39
.prototxtファイルと.caffemodelファイルは学習によって生成されたために存在するのですが、lmdbではなくhdf5を用いたために.binaryprotoファイルがありません。これはhdf5ファイルからどのように生成すればいいのでしょうか。それとも別の方法があるのでしょうか。
あなたの回答
tips
プレビュー