Python 访问列表字典中列表的最小元素
kerasPython 访问列表字典中列表的最小元素,python,python-3.x,keras,callback,Python,Python 3.x,Keras,Callback,kerasmodel.fit(…)返回一个回调历史对象,我们可以从中检索所有时代的模型度量日志的历史,即: hist = model.fit(..) off_history = hist.history 以便: pprint(off_history) {'accuracy': [0.5884908437728882, 0.6860442757606506, 0.7116397619247437, 0.72079
model.fit(…)
返回一个回调历史对象,我们可以从中检索所有时代的模型度量日志的历史,即:
hist = model.fit(..)
off_history = hist.history
以便:
pprint(off_history)
{'accuracy': [0.5884908437728882,
0.6860442757606506,
0.7116397619247437,
0.7207977771759033,
0.7276809811592102],
'loss': [1.5214883089065552,
0.9418172836303711,
0.8826016187667847,
0.8565425276756287,
0.8384354114532471],
'val_accuracy': [0.569063663482666,
0.6021720170974731,
0.6034634709358215,
0.6066920757293701,
0.607513964176178],
'val_loss': [1.3138036727905273,
1.2316004037857056,
1.201686143875122,
1.1939105987548828,
1.1881093978881836]}
我感兴趣的是检索所有型号匹配的最小val_损失
。我知道我能做到:
off_history['val_loss'][-1]
但由于我不确定keras是否始终返回准确度、损失、val_准确度的排序列表…
,因此我无法依赖此操作
那么,在
model.fit()
的所有情况下,获得最小val_损耗的最佳方法是什么?如果需要精确的输出,可以尝试使用for loop
for k,v in off_history.items():
if k == 'val_loss':
print(v[-1])
这使得:
1.1881093978881836
Kerasfit()
返回训练日志的历史对象。
因此,如果您设置:
hist = model.fit()
此历史对象包含模型训练的所有epoch
日志:
type(history.epoch) #epochs list [0,1,2,,...n_epochs]
list
因此,您所参考的hist.history
字典包含上面列表中history.epoch
中每个历元的相应度量值
为了回答您的问题,kerasfit()
将按照历代运行的顺序返回这些度量。1,2,3,4,5
实现目标的一种方法是使用numpy
的min
函数,如下所示:
validation_loss = np.min(hist.history['val_loss'])
要在keras的所有时代检索最小验证损失fit()
,内置的min
可能有助于。。。