2017-05-05 14 views
0

私はこの変換のためのリソースを見つけるのに苦労しています。 mnistデータセットが.idx3-ubyteの中にある間に、いくつかのサンプルコードの入力データが.pkl形式であることがわかります。また、ビジョンの計算に使用されるデータセットの形式はさまざまです。私はどのフォーマットにも慣れていないし、この問題にいくつかの光が当てられれば評価されるだろう。ありがとうございました。jpgデータセットをCNNの.pklに素早く変換する方法は?


更新:今、私が正常に以下のコードを使用して.tfrecords形式で自分の画像を読み込むが、そのような形式は、CNNのために読めないようだと、私はまだの.pkl形式のコードを変更しようとしています。しかし、私の走りはすべて失敗しました。

  cwd='/Users/Downloads/tflearn_train/' 
      classes={'0','1'} #classify into 2 types 
      writer= tf.python_io.TFRecordWriter("train.tfrecords") #file to be produced 

      for index,name in enumerate(classes): 
       class_path=cwd+name+'/' 
       for img_name in os.listdir(class_path): 
        if (not img_name.startswith('.') and img_name != 'Thumbs.db'): 
         img_path=class_path+img_name #the path of every pic 
         img=Image.open(img_path,"r") 
         img= img.resize((224,224)) 
         img_raw=img.tobytes()#transform pic into binary 
         example = tf.train.Example(features=tf.train.Features(feature={ 
          "label": tf.train.Feature(int64_list=tf.train.Int64List(value=[index])), 
          'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw])) 
         })) 
         writer.write(example.SerializeToString()) 
      writer.close() 

上記は正常です。しかし、私はループの内側と外側に入れて

 write_file = open('train.pkl', 'wb') 
     cPickle.dump(example, write_file, -1) 
     cPickle.dump(example.features.feature['label'].int64_list.value, write_file, -1) 
     write_file.close() 

のループの内側と外側です。これまでのところ、cPickle.loadを使用しているときに.pklファイルを他の.pklファイルにすることに失敗しました。

すべての入力をありがとう。

答えて

0

Pickleは、データとともにPythonオブジェクトの構造に関する情報を格納します。単純なテンソルの場合、これはおそらく必要ではない。

代わりに、通常の方法は、行列データをバイナリ形式でファイルにダンプし、メモリにまっすぐに戻します。私は、 ".idx3-ubyte"がMNIST Figureのデータセットに使用されていると考えています。

pythonとnumpyを使用する場合は、numpyの.npy形式を使用する方が良いでしょう。これは、np.loadとnp.dump関数を使って少し簡略化しています:https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.load.html

あなたは、バイナリデータのダンプをロードする必要がある場合は、入力のためのhttps://docs.scipy.org/doc/numpy/reference/generated/numpy.fromfile.html

+0

感謝を見てみましょう。私は正常にそれらのイメージとラベルを.tfrecords形式でロードしましたが、私はcnnを訓練するためにそのような形式でファイルをロードするコードを見つけることができません。 –

+0

tfはテンソルフローを表していますが、私はこれについての経験はありません。 – pixelou

関連する問題