我有以下代码(使用Keras):
self.tensorboard = TensorBoard(log_dir='./logs', histogram_freq=0, write_graph=False, write_images=True)input_ = Input(shape=self.s_dim, name='input')hidden = Dense(self.n_hidden, activation='relu')(input_)out = Dense(3, activation='softmax')(hidden)model = Model(inputs=input_, outputs=out, name="br-model")model.compile(loss='mean_squared_error', optimizer=SGD(lr=0.005), metrics=['accuracy'])# 中间有一些操作model.fit(batch, target, epochs=2, verbose=0, callbacks=[self.tensorboard])for k in batch: exploitability.append(np.max(model.predict(batch[k]))
它会将损失和准确率绘制到TensorBoard上。
但我想同时将np.average(exploitabilty)
也绘制到TensorBoard上 – 这该怎么做呢?有没有可能将其作为指标或类似的东西传递?
回答:
您可以在编译模型时添加自定义指标,例如:
def custom_metric(y_true, y_pred): max = K.max(y_pred) return maxmodel.compile(loss='mean_squared_error', optimizer=SGD(lr=0.005), metrics=['accuracy', custom_metric])