前提・実現したいこと
EfficientNetの導入を行っている際に、エラーが発生しました。
発生している問題・エラーメッセージ
File "C:users...\Efficientnet\Efficientnet.py", line 147, in <module> X_train, Y_train, batch_size=8, epochs=2, validation_split=0.32 File "C:\Users...\Efficientnet\Efficientnet.py", line 116, in train verbose=self.verbose File "C:\Users...\keras\engine\training.py", line 1154, in fit batch_size=batch_size) File "C:\Users...\keras\engine\training.py", line 621, in _standardize_user_data exception_prefix='target') File "C:\Users...\keras\engine\training_utils.py", line 145, in standardize_input_data str(data_shape)) ValueError: Error when checking target: expected probs to have shape (1000,) but got array with shape (1,)
該当のソースコード
Python
1#モデルとのフィッ 2class Trainer(): 3 4 def __init__(self, model, loss, optimizer): 5 self._target = model 6 self._target.compile( 7 loss=loss, optimizer=optimizer, metrics=["mae"] 8 ) 9 self.verbose = 1 10 11 def train(self, X_train, Y_train, batch_size, epochs, validation_split): 12 13 self._target.fit( 14 X_train, Y_train, 15 batch_size=batch_size, epochs=epochs, 16 validation_split=validation_split, 17# callbacks = [TensorBoard(set_dir_name='CNN_LeNet_0.237W_369')], 18 19 verbose=self.verbose 20 ) 21 22#モデルの作成 23input_layer = Input(shape=(244, 244, 3)) # 最初の層 24 25 26 27 28efficient_net = EfficientNetB0( 29 weights='imagenet', # imagenetでもよい 30 include_top=False, # 全結合層は自分で作成するので要らない 31 input_tensor = input_layer, # 入力 32 pooling='max') 33 34for layer in efficient_net.layers: # 転移学習はしない 35 layer.trainable = True 36 37 38model = EfficientNetB0((224, 224, 3)) 39 40model.summary() 41 42 43#訓練の設定 44trainer = Trainer(model, loss="mean_squared_error", optimizer="adam") 45trainer.train( 46 X_train, Y_train, batch_size=8, epochs=2, validation_split=0.32 47 ) 48 49 50___以下、評価___
試したこと
①モデルの最後の層に全結合で
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー