我正在安装train_generator,并通过自定义回调,我想在validation_generator上计算自定义指标.如何访问PARAMS validation_steps和validation_data 一个自定义的回调中?它不在self.params,也找不到它self.model.这就是我想做的事情.任何不同的方法都会受到欢迎.
model.fit_generator(generator=train_generator,
steps_per_epoch=steps_per_epoch,
epochs=epochs,
validation_data=validation_generator,
validation_steps=validation_steps,
callbacks=[CustomMetrics()])
class CustomMetrics(keras.callbacks.Callback):
def on_epoch_end(self, batch, logs={}):
for i in validation_steps:
# features, labels = next(validation_data)
# compute custom metric: f(features, labels)
return
Run Code Online (Sandbox Code Playgroud)
keras:2.1.1
更新
我设法将验证数据传递给自定义回调的构造函数.但是,这会导致令人讨厌的"内核似乎已经死亡.它会自动重启".信息.我怀疑这是否是正确的方法.有什么建议吗?
class CustomMetrics(keras.callbacks.Callback):
def __init__(self, validation_generator, validation_steps):
self.validation_generator = validation_generator
self.validation_steps = validation_steps
def on_epoch_end(self, batch, logs={}):
self.scores = {
'recall_score': [],
'precision_score': [],
'f1_score': []
}
for batch_index in range(self.validation_steps):
features, y_true = next(self.validation_generator)
y_pred = np.asarray(self.model.predict(features))
y_pred = y_pred.round().astype(int) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下内容绘制seaborn 群集图(它也不适用于热图),没有NaN承认:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
def plotClusterMap():
a = pd.DataFrame(np.matrix('1 2; 3 4'))
print a
fig = plt.figure()
sns.clustermap(a)
plt.show()
Run Code Online (Sandbox Code Playgroud)
a 形成良好:
0 1
0 1 2
1 3 4
Run Code Online (Sandbox Code Playgroud)
控制台输出:
Traceback (most recent call last):
File "main.py", line 78, in <module>
main()
File "main.py", line 72, in main
heatmapPlotter.plotClusterMap()
File "/Users/username/code.py", line 12, in plotClusterMap
sns.clustermap(a)
File "/Library/Python/2.7/site-packages/seaborn/matrix.py", line 895, in clustermap …Run Code Online (Sandbox Code Playgroud)