Kerasでディープラーニングの開発を進めていますが、よく
model = Sequential() model.add(Dense(512, activation='relu', input_shape=(784,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(10, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy'])
ってやってました。
しかし、ある時
metrics=['accuracy']
ってなんだ??という疑問にブチ当たりました。(´・ω・)
metrics=['acc']
も同様です。
Kerasの本家サイトによると
accuracyって名前のmetricsないんですよね (;^ω^)
幸いなことに、下記のStack Overflowさんに答えがありましたー!
https://stackoverflow.com/questions/41531695/how-does-keras-define-accuracy-and-loss
デフォルトはcategorical_accuracyだそうです。
下記のKerasのソースコードを見ると、損失関数のタイプとか、出力のシェイプっぽいのを見て、binary_crossentropy にしてくれることもあるようです。
しかし!はっきりしていた方がいいですから、自分で指定しておいた方が私は好きですね~。
ちなみに、勉強している元ネタ本はこちら。
PythonとKerasによるディープラーニング
無駄にややこしい部分があるので、オススメ本ではありませんw
ちょうど、’accuracy’というmetricsが公式Docに載っていないことで困惑していました。ありがとうございます。