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

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

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

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

Q&A

解決済

1回答

1208閲覧

画像認識の学習モデルが作成できません

paypay29

総合スコア3

Keras

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

0グッド

0クリップ

投稿2022/09/15 12:56

Python初心者です。
DeepLeaning を試すため、簡単な画像認識のモデルを作成しようとしたのですが、model.fitで学習させようとすると以下のエラーが出てうまくいきません。
stringからfloatにキャストしようとしてるみたいなのですが、stringを使用している自覚がないため原因がわかりません。

error

1Traceback (most recent call last): 2 File "DL_try.py", line 58, in <module> 3 model.fit(I_train, A_train, epochs = 10) 4 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\utils\traceback_utils.py", line 67, in error_handler 5 raise e.with_traceback(filtered_tb) from None 6 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\tensorflow\python\eager\execute.py", line 55, in quick_execute 7 inputs, attrs, num_outputs) 8tensorflow.python.framework.errors_impl.UnimplementedError: Graph execution error: 9 10Detected at node 'Cast_1' defined at (most recent call last): 11 File "DL_try.py", line 58, in <module> 12 model.fit(I_train, A_train, epochs = 10) 13 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\utils\traceback_utils.py", line 64, in error_handler 14 return fn(*args, **kwargs) 15 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\engine\training.py", line 1409, in fit 16 tmp_logs = self.train_function(iterator) 17 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\engine\training.py", line 1051, in train_function 18 return step_function(self, iterator) 19 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\engine\training.py", line 1040, in step_function 20 outputs = model.distribute_strategy.run(run_step, args=(data,)) 21 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\engine\training.py", line 1030, in run_step 22 outputs = model.train_step(data) 23 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\engine\training.py", line 894, in train_step 24 return self.compute_metrics(x, y, y_pred, sample_weight) 25 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\engine\training.py", line 987, in compute_metrics 26 self.compiled_metrics.update_state(y, y_pred, sample_weight) 27 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\engine\compile_utils.py", line 501, in update_state 28 metric_obj.update_state(y_t, y_p, sample_weight=mask) 29 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\utils\metrics_utils.py", line 70, in decorated 30 update_op = update_state_fn(*args, **kwargs) 31 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\metrics\base_metric.py", line 140, in update_state_fn 32 return ag_update_state(*args, **kwargs) 33 File "C:\Users\anaconda3\envs\DL_Try\lib\site-packages\keras\metrics\base_metric.py", line 637, in update_state 34 y_true = tf.cast(y_true, self._dtype) 35Node: 'Cast_1' 36Cast string to float is not supported 37 [[{{node Cast_1}}]] [Op:__inference_train_function_882]

ソース

python

1import numpy as np 2import tensorflow as tf 3import glob 4 5 6I_train = [] 7A_train = [] 8I_test = [] 9A_test = [] 10 11 12"""---------------------画像読み込み---------------------""" 13for f in glob.glob("image\\*\\*\\*.jpg"): 14 img_data = tf.io.read_file(f) 15 img_data = tf.io.decode_jpeg(img_data, channels=3) 16 17 img_data = tf.image.resize(img_data, [100, 100]) 18 19 if f.split("\\")[1] == "train": 20 I_train.append(img_data) 21 A_train.append(f.split("\\")[2].split("_")[0]) 22 23 elif f.split("\\")[1] == "test": 24 I_test.append(img_data) 25 A_test.append(f.split("\\")[2].split("_")[0]) 26 27I_train = np.array(I_train) / 255 28A_train = np.array(A_train) 29I_test = np.array(I_test) / 255 30A_test = np.array(A_test) 31 32 33"""---------------------ニューラルネットワークの構築---------------------""" 34model = tf.keras.models.Sequential([ 35 #入力層 36 tf.keras.layers.Flatten(input_shape = (100, 100, 3)), 37 #中間層 38 tf.keras.layers.Dense(64, activation = "relu"), 39 tf.keras.layers.Dropout(0.2), 40 #出力層 41 tf.keras.layers.Dense(3, activation = "softmax") 42]) 43 44"""---------------------モデルの学習---------------------""" 45model.compile(optimizer = "adam", loss = "sparse_categorical_crossentropy", metrics = ["accuracy"]) 46 47#学習開始 48model.fit(I_train, A_train, epochs = 10) 49

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

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

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

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

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

guest

回答1

0

ベストアンサー

stringを使用している自覚がない

python

1A_train = np.array(A_train)

のすぐ下に

python

1print(A_train.dtype)

を追加して実行したら、「A_train」が文字列になってることが分かります
「A_test」も同様です

参考
numpyで文字列の配列を作る際の注意点

 

python

1 A_train.append(f.split("\\")[2].split("_")[0])

↓ 修正

python

1 A_train.append(int(f.split("\\")[2].split("_")[0]))

 

python

1 A_test.append(f.split("\\")[2].split("_")[0])

↓ 修正

python

1 A_test.append(int(f.split("\\")[2].split("_")[0]))

とすれば、文字列ではなく整数になるので、エラーにならないと思います

参考
犬、猫、ペンギンを判別する深層学習(ディープラーニング)を作ってみた!

投稿2022/09/16 05:42

jbpb0

総合スコア7651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問