aki*_*t90 10 machine-learning neural-network cross-validation keras recurrent-neural-network
我正在使用keras训练RNN,并希望了解验证准确度如何随数据集大小而变化.Keras val_acc
在其历史对象中有一个名单,该列表在每个时期之后附加,具有相应的验证集准确性(链接到google组中的帖子).我想获得val_acc
运行时期数的平均值,并根据相应的数据集大小进行绘制.
问题:如何检索val_acc
列表中的元素并执行类似的操作numpy.mean(val_acc)
?
编辑:正如@runDOSrun所说,得到val_acc
s 的意思是没有意义的.让我专注于进入决赛val_acc
.
我尝试了@nemo的建议,但没有运气.这是我打印时得到的
model.fit(X_train, y_train, batch_size = 512, nb_epoch = 5, validation_split = 0.05).__dict__
输出:
{'model': <keras.models.Sequential object at 0x000000001F752A90>, 'params': {'verbose': 1, 'nb_epoch': 5, 'batch_size': 512, 'metrics': ['loss', 'val_loss'], 'nb_sample': 1710, 'do_validation': True}, 'epoch': [0, 1, 2, 3, 4], 'history': {'loss': [0.96936064512408959, 0.66933631673890948, 0.63404161288724303, 0.62268789783555867, 0.60833334699708819], 'val_loss': [0.84040999412536621, 0.75676006078720093, 0.73714292049407959, 0.71032363176345825, 0.71341043710708618]}}
Run Code Online (Sandbox Code Playgroud)
事实证明val_acc
,我的历史词典中没有列表.
问题:如何val_acc
在history
字典中加入?
要获得准确度值,您需要请求它们在计算期间fit
,因为准确性不是目标函数,而是(通用)度量.有时计算精度没有意义,因此在Keras默认情况下不启用它.但是,它是一个内置指标,并且易于添加.
要添加度量标准,请使用metrics=['accuracy']
参数tomodel.compile
.
在你的例子中:
history = model.fit(X_train, y_train, batch_size = 512,
nb_epoch = 5, validation_split = 0.05)
Run Code Online (Sandbox Code Playgroud)
然后,您可以访问验证准确性 history.history['val_acc']
历史对象是在fit()
模型建立期间创建的。keras/engine/training.py
详情请参阅。
history
您可以使用模型上的属性访问历史记录: model.history
。
拟合模型后,您只需对属性进行平均即可。
np.mean([v['val_acc'] for v in model.history])
Run Code Online (Sandbox Code Playgroud)
请注意,该模式适用val_<your output name here>
于您指定的每个输出。
归档时间: |
|
查看次数: |
10032 次 |
最近记录: |