2017-06-01 5 views
1

ここは新しいです! 私は本当に素敵な企業の研修生です。 彼らは深い学習とテンソルフローを学びたいと思っています。本当にいいと思います。 probは、私はそれが本当に複雑だが、私は最善を尽くしているということです。ケラスで入力形状を定義する方法

だから、最初は数が偶数か奇数かどうかをクラス分けすることができる小さな分類器を作ろうとしています。私はケラで試しましたが、形を定義するのに少し問題があるようです。

ここに私のコードです:

import keras 
import numpy as np 

x_train = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) 
y_train = np.array([1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0]) 
x_test = np.array([884,65,9,995,5,32,7,684,5]) 
y_test = np.array([1,0,0,0,0,1,0,1,0]) 

print(x_train.shape) 
print(y_train.shape) 
print(x_test.shape) 
print(y_test.shape) 

(16) (16) (9) (9)

from keras.layers import Dense, Activation 
from keras.models import Sequential 
model = Sequential() 

model.add(Dense(1, input_shape=(16,))) 
model.add(Activation('relu')) 
model.add(Dense(2)) 
model.add(Activation('softmax')) 

model.compile(loss='categorical_crossentropy', optimizer='sgd',metrics= 
['accuracy']) 
model.fit(x_train, y_train, epochs=10,) 
loss_and_metrics = model.predict(x_test, y_test, batch_size=128) 

とValueError:エラー入力をチェック:期待dense_54_inputは(16、1)

最後にこれを手に入れましたが、数時間は検索しましたが見つかりませんでしたどのようにこの問題を唯一に見て... あなたの助けてくれてありがとう!

答えて

1

ネットワークのinput_shape1で、16ではなく、16個の1次元(1つの整数)のサンプルがあります。

また、出力値(yベクトル)をバイナリクラスの行列に変換する必要があります。これにはkeras.utils.to_categoricalを使用してください。

また、このネットワークアーキテクチャ(ニューロンの数、入力表現、アクティベーション機能)では良い結果を得られないと思います。参照のためにthis questionをチェックしてください。

+0

これを試して質問を確認します。 あなたの答えをありがとう! –

関連する問題