2017-02-17 8 views
1

ケラスにいくつかの問題があります。私はちょうどモデルを構築し、それを実行させてからそれを調整しようとしています。そのため、私は99の画像と99のラベルしか使用していないと言われています。参考までに、クラスラベルだけでなく、私にそれを継続的に出力するために使っています。以下は私が使用しているコードです。まず、すべてのデータをインポートするスクリプトがあります。 99画像と99ラベル。ケラスモデルの行列サイズエラー

私がモデルパーツのフィッティングに着くと、それは私にエラーを投げます。 "ValueError:モデルターゲットをチェックしているときにエラーが発生しました:cropping2d_1が4次元であると予想されましたが、シェイプ(99、1)の配列があります。"

私は同様のエラーについていくつかの他のスレッドを読んでいます。それはケラを送信している配列の順番かもしれません。私はそれと一緒に遊んで、次のことがあります。現在、画像配列の形状は(99,160,320,3)です。私はkerasの "input_shape"の順序を(3,160,320)に変更しようとしました。これは私にエラー "ValueError:モデル入力をチェックしているときにエラーが発生しました:cropping2d_input_1がshape(None、3、160、320)を持っていても、形状が(99,160,320,3)私はそれに応じてimages_center配列を再形成し、上記と同じエラーが発生しました。

私はインポートステートメントをここでは省略しています。

次のステップについてのご意見はありますか?

#Import col 3 to get a length of the dataset 
df = pd.read_csv('/Users/user/Desktop/data/driving_log.csv',usecols=[3]) 

#import and make a matrix of the file paths and data 
f = open('/Users/user/Desktop/data/driving_log.csv') 
csv_f = csv.reader(f) 
m=[] 
for row in csv_f: 
    n=(row) 
    m.append(n) 

#Create labels data 
labels=[] 
for i in range(1,100): 
    label=(m[i][3]) 
    labels.append(label) 
list1=[] 
for i in range(len(labels)): 
    ix=float(labels[i]) 
    list1.append(ix) 
labels=list1 
labels=np.array(labels) 


#Create features data 
#Loop through file paths, combine base path with folder path then read in and append 
images_center=[] 
for i in range(1,100): 
    img=(m[i][0]) 
    img=img.lstrip() 
    path='/Users/user/Desktop/data/' 
    img=path+img 
    image=cv2.imread(img) 

    images_center.append(image) 
images_center=np.array(images_center) 
print(images_center.shape) 

# Fix error with TF and Keras 
import tensorflow as tf 
tf.python.control_flow_ops = tf 
print(images_center.shape) 


model = Sequential() 
model.add(Convolution2D(16,3,3,border_mode='valid',input_shape=(160,320,3))) 


model.compile('adam','categorical_crossentropy',['accuracy']) 
history=model.fit(images_center,labels,nb_epoch=10,validation_split=0.2) 

答えて

1

ラベル(つまりターゲット)の形状(99,1)は、ネットワークが同じ形状の出力を生成するようにします。末尾に完全に接続されたレイヤーを追加してみてください(model.add(Dense(1))など)。

関連する問題