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
回答1件
あなたの回答
tips
プレビュー