2016-10-25 26 views
1

Kerasを使ってPython上でニューラルネットワークのサンプルプログラムを実行したいと思います。私のデータはMatlab .matファイルの形式です。Kerasを使ってPythonで.matデータを読み込む

train_data.mat (size: 32x32x10,000 single) 
train_label.mat (size: 1x10,000 single) 
test_data.mat (size: 32x32x2,000 single) 
test_label.mat (size: 1x2,000 single) 

上記の.matデータをロードして、Kerasを使用してPythonでMNISTデータセットを置き換えるにはどうすればよいですか? (イラストの目的のために)

from keras.datasets import mnist 
(train_data, train_label), (test_data, test_label) = mnist.load_data() 

EDIT

それはscipy.ioでロードした後に以下になった

val(:,:,1) = 

    1  1 
    1  1 


val(:,:,2) = 

    2  2 
    2  2 


val(:,:,3) = 

    3  3 
    3  3 

、.MATの私train_dataがサイズ2x2x3で、3つのデータを持っているとしましょう大きさ(2L、2L、3L)を持つ.loadmat

>>> A 
array([[[1, 2, 3], 
     [1, 2, 3]], 

     [[1, 2, 3], 
     [1, 2, 3]]], dtype=uint8) 

それを(3L、2L、2L)に変更します。これは、(2L、2L)の3つのデータを意味しますか?

回答

>>> import scipy.io 
>>> A = scipy.io.loadmat('train_data') 
>>> B = A.flatten(1) # flatten to vector 
>>> C = B.reshape(3,2,2) # reshape 

>>> C 
array([[[1, 1], 
     [1, 1]], 

     [[2, 2], 
     [2, 2]], 

     [[3, 3], 
     [3, 3]]], dtype=uint8) 

答えて

0

あなたはscipy.io.loadmatを使用してmatfilesを読むことができます。詳細については、関連ドキュメントをお読みください。

+0

私はそれを読んだが、私はどのようにデータを再形成するか分からない。私の編集を見てください。 – askseekknock

1

@Krishnaは言ったように、scipy.io.loadmatを使用して、numpyアレイとしてmatlabファイルを読み込むことができます。そして、あなたがデータを再構築しなければならない、例えば、train_data(10000, 32, 32)

あなたが持っているMATLABファイルはV7である場合は、scipy.io.loadmatはあなたにエラーを与える可能性のような形状にする必要があります。その場合、マットファイルは実際にはhdf5形式です。データをロードするには、h5pyを使用する必要があります。

+0

scipy.io.loadmatは何のエラーも与えていないので、フォーマットはokです。しかし、それを再構成することはできませんでした。 – askseekknock

+0

あなたはそれがうまくいっていることを喜んで参照してください。 – pyan

関連する問題