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

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

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

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

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

1903閲覧

Kerasで多量のエラーが出ました

退会済みユーザー

退会済みユーザー

総合スコア0

Keras

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

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2023/01/31 13:01

Kerasで、画像分類の模写をしていて、バージョン2.11に直し、model.fitメソッドを使っていました。

history = model.fit(X_train, y_train, batch_size=32, epochs=50, verbose=1, validation_data=(X_test, y_test))

すると以下の大量のエラーが出てしまい、あまりに多いので、調べてもどこが間違っているのか分かりませんでした。

2023-01-31 21:46:37.755614: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. Epoch 1/50 Traceback (most recent call last): File "/Users/Newton/Desktop/*/learn.py", line 74, in <module> history = model.fit(X_train, y_train, batch_size=32, File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/utils/traceback_utils.py", line 70, in error_handler raise e.with_traceback(filtered_tb) from None File "/var/folders/t2/7crbdq9976zf_bvqhhdh60fr0000gn/T/__autograph_generated_filekqkrqh7v.py", line 15, in tf__train_function retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope) ValueError: in user code: File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/engine/training.py", line 1160, in train_function * return step_function(self, iterator) File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/engine/training.py", line 1146, in step_function ** outputs = model.distribute_strategy.run(run_step, args=(data,)) File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/engine/training.py", line 1135, in run_step ** outputs = model.train_step(data) File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/engine/training.py", line 994, in train_step loss = self.compute_loss(x, y, y_pred, sample_weight) File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/engine/training.py", line 1052, in compute_loss return self.compiled_loss( File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/engine/compile_utils.py", line 265, in __call__ loss_value = loss_obj(y_t, y_p, sample_weight=sw) File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/losses.py", line 152, in __call__ losses = call_fn(y_true, y_pred) File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/losses.py", line 272, in call ** return ag_fn(y_true, y_pred, **self._fn_kwargs) File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/losses.py", line 1990, in categorical_crossentropy return backend.categorical_crossentropy( File "/Users/Newton/opt/anaconda3/lib/python3.9/site-packages/keras/backend.py", line 5529, in categorical_crossentropy target.shape.assert_is_compatible_with(output.shape) ValueError: Shapes (None, 4) and (None, 5) are incompatible

以下がPythonのコードです。初めてだったのでコメントアウトして良いのか分からなかったためコードが長すぎてしまいました。
どうか機械学習とPythonに詳しい方お願いします。

learn.py

1import tensorflow as tf 2# from tensorflow import keras 3# from tensorflow.keras import layers 4# from tensorflow.keras.layers import Activation, Conv2D, Dense, Flatten, MaxPooling2D 5# from tensorflow.keras.models import Sequential 6from tensorflow.keras.utils import to_categorical 7 8y_train = to_categorical(Y_train) 9y_test = to_categorical(Y_test) 10 11# モデルの定義 12model = tf.keras.models.Sequential() 13model.add(tf.keras.layers.Conv2D(input_shape=(64, 64, 3), filters=32,kernel_size=(3, 3), 14 strides=(1, 1), padding="same")) 15model.add(tf.keras.layers.MaxPool2D(pool_size=(2, 2))) 16model.add(tf.keras.layers.Conv2D(filters=32, kernel_size=(3, 3), 17 strides=(1, 1), padding="same")) 18model.add(tf.keras.layers.MaxPool2D(pool_size=(2, 2))) 19model.add(tf.keras.layers.Conv2D(filters=32, kernel_size=(3, 3), 20 strides=(1, 1), padding="same")) 21model.add(tf.keras.layers.MaxPool2D(pool_size=(2, 2))) 22model.add(tf.keras.layers.Flatten()) 23model.add(tf.keras.layers.Dense(256, activation='sigmoid')) 24# model.add(tf.keras.activations.sigmoid()) 25model.add(tf.keras.layers.Dense(128, activation='sigmoid')) 26# model.add(tf.keras.activations.sigmoid()) 27model.add(tf.keras.layers.Dense(5, activation='softmax')) 28# model.add(tf.keras.activations.softmax()) 29 30# コンパイル 31model.compile(optimizer='sgd', 32 loss='categorical_crossentropy', 33 metrics=['accuracy']) 34 35# 学習 36history = model.fit(X_train, y_train, batch_size=32, 37 epochs=50, verbose=1, validation_data=(X_test, y_test)) 38 39# 汎化制度の評価・表示 40score = model.evaluate(X_test, y_test, batch_size=32, verbose=0) 41print('validation loss:{0[0]}\nvalidation accuracy:{0[1]}'.format(score)) 42 43#acc, val_accのプロット 44plt.plot(history.history["acc"], label="acc", ls="-", marker="o") 45plt.plot(history.history["val_acc"], label="val_acc", ls="-", marker="x") 46plt.ylabel("accuracy") 47plt.xlabel("epoch") 48plt.legend(loc="best") 49plt.show() 50 51#モデルを保存 52model.save("my_model.h5")

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

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

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

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

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

meg_

2023/01/31 14:15

学習は1エポックも完了しませんでしたか?メモリ不足は起きていませんか?
PondVillege

2023/01/31 16:03

データ量をNとしてy_trainが(N, 4)なのではないですか? モデルは5クラス分類を解こうとしていますが,to_categorical()で作成されたOne-Hot Vectorは要素数4の配列のようです.合わずにエラーになっています.
jbpb0

2023/01/31 22:04

「history = model.fit(...」のすぐ上に下記を追加して実行したら、何て表示されますでしょうか? print(y_train.shape) print(y_test.shape)
退会済みユーザー

退会済みユーザー

2023/02/01 02:02 編集

meg_さん、1エポック目で失敗してしまいます。 またjbpb0さん、 (1715, 4) (41, 4) と出てしまいます。 そしてps_aux_grepさん、記事では5クラス分類ですが、私は4クラス分類をしていました。 お聞きしたいのですが、どこのコードで5クラス分類とお分かりになられたのでしょうか?
退会済みユーザー

退会済みユーザー

2023/02/01 02:17 編集

今朝、他の記事 https://qiita.com/Taka_input/items/04a23bd8e9101788e583 でも試したのですが、下記のエラーがどうしても出てしまいます。 ValueError: Shapes (None, 4) and (None, 5) are incompatible
jbpb0

2023/02/01 05:23 編集

> どこのコードで5クラス分類とお分かりに は、 > model.add(tf.keras.layers.Dense(5, activation='softmax')) の「5」です > 私は4クラス分類をしていました。 そこを「4」に変えてみてください > https://qiita.com/Taka_input/items/04a23bd8e9101788e583 でも試したのですが、下記のエラーが 同様に、「7.学習」のコードの top_model.add(Dense(5, activation="softmax")) の「5」を「4」に変えてみてください
退会済みユーザー

退会済みユーザー

2023/02/01 05:02

model.add(tf.keras.layers.Dense(4, activation='softmax')) にしたら学習できました! ありがとうございます!!
jbpb0

2023/02/01 23:48

> 学習できました! 解決したなら、質問を「解決済」にしてください
guest

回答1

0

ベストアンサー

上記の質問に書いてあります。

投稿2023/02/02 00:49

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問