質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1393閲覧

kerasのfunction apiでベクトルを結合したい

kanpan

総合スコア20

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/12/06 07:57

現在、kerasのfunction apiを用いて入力データを4種類のカーネルサイズで畳み込みしたのち、それを統合したベクトルを作成したいのですが、うまくいきません。
どうすればよいのでしょうか?
#ソースコード

# input image dimensions img_rows, img_cols = 100, 200 batch_size = 128 num_classes = 2 epochs = 12 conv_filters = 128 x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1) x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1) input_shape = (img_rows, img_cols, 1) inp = Input(shape=(img_rows, img_cols, 1)) # Specify each convolution layer and their kernel siz i.e. n-grams conv1_1 = Conv2D(filters=conv_filters, kernel_size=(3,200))(inp) btch1_1 = BatchNormalization()(conv1_1) drp1_1 = Dropout(0.2)(btch1_1) actv1_1 = Activation('relu')(drp1_1) glmp1_1 = MaxPooling2D(pool_size=(98, 1))(actv1_1) conv1_2 = Conv2D(filters=conv_filters, kernel_size=(4,200))(inp) btch1_2 = BatchNormalization()(conv1_2) drp1_2 = Dropout(0.2)(btch1_2) actv1_2 = Activation('relu')(drp1_2) glmp1_2 = MaxPooling2D(pool_size=(97, 1))(actv1_2) conv1_3 = Conv2D(filters=conv_filters, kernel_size=(5,200))(inp) btch1_3 = BatchNormalization()(conv1_3) drp1_3 = Dropout(0.2)(btch1_3) actv1_3 = Activation('relu')(drp1_3) glmp1_3 = MaxPooling2D(pool_size=(96, 1))(actv1_3) conv1_4 = Conv2D(filters=conv_filters, kernel_size=(6,200))(inp) btch1_4 = BatchNormalization()(conv1_4) drp1_4 = Dropout(0.2)(btch1_4) actv1_4 = Activation('relu')(drp1_4) glmp1_4 = MaxPooling2D(pool_size=(95, 1))(actv1_4) # Gather all convolution layers cnct = concatenate([glmp1_1, glmp1_2, glmp1_3, glmp1_4], axis=1) drp = Dropout(0.2)(cnct) out = Dense(num_classes, activation='sigmoid')(drp) model = Model(inputs=inp, outputs=out) model.summary() model.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.Adadelta(), metrics=['accuracy']) fit = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(x_test, y_test))

#エラーメッセージ

Traceback (most recent call last): File "keras_model.py", line 78, in <module> validation_data=(x_test, y_test)) File "C:\Users\brain\Anaconda3\lib\site-packages\keras\engine\training.py", line 1630, in fit batch_size=batch_size) File "C:\Users\brain\Anaconda3\lib\site-packages\keras\engine\training.py", line 1480, in _standardize_user_data exception_prefix='target') File "C:\Users\brain\Anaconda3\lib\site-packages\keras\engine\training.py", line 113, in _standardize_input_data 'with shape ' + str(data_shape)) ValueError: Error when checking target: expected dense_1 to have 4 dimensions, but got array with shape (26456, 2)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

Flattenすればできた

投稿2018/12/06 08:08

kanpan

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問