CNNで評価関数にprecisionを用いる方法。
解決したいこと
ここに解決したい内容を記載してください。
CNNで画像分類をするためのプログラムを組みました。
必要なライブラリは、ターミナルでダウンロードして、自分のパソコンで環境構築しました。
accuracyはできたのですが、
評価関数をaccuracyだけではなく、precisionなどでも試したいと思ったのですが、できませんでした。
初心者すぎて、どうすれば良いかわかりません。
解決方法とコードの書き方を教えていただきたいです。
発生している問題・エラー
ValueError: Unknown metric function: precision. Please ensure this object is passed to the `custom_objects` argument. See https://www.tensorflow.org/guide/keras/save_and_serialize#registering_the_custom_object for details.
該当するソースコード
ソースコードを入力
from keras.models import Sequential
from keras.layers import Activation, Dense
from keras.layers import Conv2D, MaxPooling2D, Flatten
from keras.preprocessing.image import ImageDataGenerator
def main():
model = Sequential()
model.add(Conv2D(16, (3, 3), padding= "same" ,input_shape=(64, 64, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size= (2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(256))
model.add(Activation("relu"))
model.add(Dense(2))
model.add(Activation("softmax"))
#model.summary()
model.compile(
optimizer="adam" ,
loss="categorical_crossentropy",
metrics=["precision"])
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
"/Users/arou/Desktop/grad/trainingdatasets_Kogane/train_kagane",
target_size=(64, 64),
batch_size=10)
validation_generator = test_datagen.flow_from_directory(
"/Users/arou/Desktop/grad/trainingdatasets_Kogane/validation_kogane",
target_size=(64, 64),
batch_size=10)
model.fit_generator(
train_generator,
epochs=100,
steps_per_epoch=10,
validation_data=validation_generator,
validation_steps=10)
model.save("model.h5")
if __name__ == "__main__":
main()
0