これまでの約24時間はこれを解決しようとしていましたが、残念ながら何かを考え出すことはできませんでした。トレーニングKeras CNNモデル(RGBチャンネルのグリーンチャンネル)
質問は簡単です:2つのサブディレクトリに2つのカテゴリがあり、サブディレクトリの画像はRGB形式ですが、私は緑色のチャンネルだけに興味があります。
def get_model_bw(input_shape=(3,224,224), classes = 2, lr=1e-4):
model = Sequential([
Lambda(lambda x: x[:,1,:,:], input_shape=input_shape, output_shape=(1,224,224)),
BatchNormalization(axis=1),
Conv2D(32,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(32,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(32,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(64,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(64,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(64,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(128,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(128,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(256,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(256,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(512,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(512,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Flatten(),
Dense(1000, activation='relu'),
BatchNormalization(),
Dense(1000, activation='relu'),
BatchNormalization(),
Dense(classes, activation='softmax')
])
model.compile(Adam(lr=lr), loss='categorical_crossentropy', metrics=['accuracy'])
return model
model_bw = get_model_bw(input_shape=(3,224,224), classes=2)
しかし、それだけでは動作することを拒否...:私は、私は次のようにラムダ層を使用してグリーンチャンネルを抽出しようとしている(画像サイズ(3224224)@)flow_from_directory機能を使用して画像のバッチを読みます それは投げというエラーがある:
とValueErrorトレースバック(最新の呼び出しの最後) とValueError:入力0は層batch_normalization_181と互換性がありません:期待ndim = 4は、任意の提案ndim = 3
を見つけましたか? P.P.私はTheanoバックエンドと最新のケラスバージョンを使用しています。
ご協力いただければ幸いです。
は「働くことを拒否」であなたは何を意味するかについての詳細を教えてください。考えられるエラーメッセージを含める。 –
何が起こっているのかを人々が理解できるように、エラーメッセージを投稿する必要があります。 –
ありがとう、私はエラーメッセージを追加しました。ありがとう。 –