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

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

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

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

解決済

1回答

9667閲覧

ValueError: Shapes (None, 2) and (None, 3) are incompatibleの解決方法

jumpong

総合スコア1

Keras

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

0グッド

0クリップ

投稿2020/07/16 13:56

前提・実現したいこと

犬と猫の画像判別の学習とテストをkerasに沿って実行しようとしていたら以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

2020-07-16 21:43:02.321722: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cud art64_101.dll not found 2020-07-16 21:43:02.329196: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machin e. 2020-07-16 21:43:05.639707: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dl l not found 2020-07-16 21:43:05.647376: E tensorflow/stream_executor/cuda/cuda_driver.cc:313] failed call to cuInit: UNKNOWN ERROR (303) 2020-07-16 21:43:05.673217: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: LAPTOP-73UL2H4Q 2020-07-16 21:43:05.677826: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: LAPTOP-73UL2H4Q 2020-07-16 21:43:05.682572: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compile d to use: AVX2 2020-07-16 21:43:05.718423: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x1d160509f10 initialized for platform Host (this does not guaran tee that XLA will be used). Devices: 2020-07-16 21:43:05.723517: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version Epoch 1/100 Traceback (most recent call last): File "animal_cnn.py", line 58, in <module> main() File "animal_cnn.py", line 20, in main model = model_train(X_train, y_train) File "animal_cnn.py", line 47, in model_train model.fit(X, y, batch_size=32, epochs=100) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\engine\training.py", line 66, in _method_wrapper return method(self, *args, **kwargs) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\engine\training.py", line 848, in fit tmp_logs = train_function(iterator) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\eager\def_function.py", line 580, in __call__ result = self._call(*args, **kwds) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\eager\def_function.py", line 627, in _call self._initialize(args, kwds, add_initializers_to=initializers) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\eager\def_function.py", line 506, in _initialize *args, **kwds)) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\eager\function.py", line 2446, in _get_concrete_function_internal_garbage_c ollected graph_function, _, _ = self._maybe_define_function(args, kwargs) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\eager\function.py", line 2777, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\eager\function.py", line 2667, in _create_graph_function capture_by_value=self._capture_by_value), File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\framework\func_graph.py", line 981, in func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\eager\def_function.py", line 441, in wrapped_fn return weak_wrapped_fn().__wrapped__(*args, **kwds) File "C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\framework\func_graph.py", line 968, in wrapper raise e.ag_error_metadata.to_exception(e) ValueError: in user code: C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\engine\training.py:571 train_function * outputs = self.distribute_strategy.run( C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:951 run ** return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2290 call_for_each_replica return self._call_for_each_replica(fn, args, kwargs) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2649 _call_for_each_replica return fn(*args, **kwargs) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\engine\training.py:533 train_step ** y, y_pred, sample_weight, regularization_losses=self.losses) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\engine\compile_utils.py:205 __call__ loss_value = loss_obj(y_t, y_p, sample_weight=sw) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\losses.py:143 __call__ losses = self.call(y_true, y_pred) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\losses.py:246 call return self.fn(y_true, y_pred, **self._fn_kwargs) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\losses.py:1527 categorical_crossentropy return K.categorical_crossentropy(y_true, y_pred, from_logits=from_logits) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\keras\backend.py:4561 categorical_crossentropy target.shape.assert_is_compatible_with(output.shape) C:\Users\Owner\anaconda3\envs\tf140\lib\site-packages\tensorflow\python\framework\tensor_shape.py:1117 assert_is_compatible_with raise ValueError("Shapes %s and %s are incompatible" % (self, other)) ValueError: Shapes (None, 2) and (None, 3) are incompatible

該当のソースコード

python

1 from keras.models import Sequential 2from keras.layers import Conv2D,MaxPooling2D 3from keras.layers import Activation, Dropout, Flatten, Dense 4from keras.utils import np_utils 5import keras 6import numpy as np 7 8classes = ['cat','dog'] 9num_classes = len(classes) 10image_size = 50 11 12def main(): 13 X_train, X_test, y_train, y_test = np.load("./animal.npy",allow_pickle=True) 14 X_train = X_train.astype("float32")/256 15 X_test = X_test.astype("float32")/256 16 y_train = np_utils.to_categorical(y_train, num_classes) 17 y_test = np_utils.to_categorical(y_test, num_classes) 18 19 model = model_train(X_train, y_train) 20 model_eval(model, X_test, y_test) 21def model_train(X,y): 22 model = Sequential() 23 model.add(Conv2D(32,(3,3),padding='same',input_shape=X.shape[1:])) 24 model.add(Activation('relu')) 25 model.add(Conv2D(32,(3,3))) 26 model.add(Activation('relu')) 27 model.add(MaxPooling2D(pool_size=(2,2))) 28 model.add(Dropout(0.25)) 29 30 model.add(Conv2D(64,(3,3),padding='same')) 31 model.add(Activation('relu')) 32 model.add(Conv2D(64,(3,3))) 33 model.add(Activation('relu')) 34 model.add(MaxPooling2D(pool_size=(2,2))) 35 model.add(Dropout(0.25)) 36 37 model.add(Flatten()) 38 model.add(Dense(512)) 39 model.add(Activation('relu')) 40 model.add(Dropout(0.5)) 41 model.add(Dense(3)) 42 model.add(Activation('softmax')) 43 44 opt = keras.optimizers.RMSprop(lr=0.0001, decay=1e-6) 45 model.compile(loss='categorical_crossentropy',optimizer=opt,metrics=['accuracy']) 46 model.fit(X, y, batch_size=32, epochs=100) 47 48 model.save("./animal_cnn.h5") 49 50 return model 51def model_eval(model, X, y): 52 scores = model.evaluate(X, y, verbose=1) 53 print('Test loss:', scores[0]) 54 print('Test Accuracy:',scores[1]) 55 56if __name__ =="__main__": 57 main() 58

試したこと

次元をそれえようとy_train,y_testをいろいろいじっていたのですがうまくいきませんでした。よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

コードよく見てませんが2クラスの分類ならmodel.add(Dense(3))model.add(Dense(2))では?

投稿2020/07/16 14:15

can110

総合スコア38234

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

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

jumpong

2020/07/17 00:02

解決できました!!まだ初心者でくじけそうになっていました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問