首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras,从回调追加到日志

Keras,从回调追加到日志
EN

Stack Overflow用户
提问于 2018-01-29 00:27:08
回答 1查看 7.8K关注 0票数 20

我有一个回调函数,它在on_epoch_end中为验证数据计算两个额外的指标,并为测试数据计算每10个时期。

我还有一个CSVLogger回调函数,可以将普通指标保存到日志文件中。

有没有一种简单的方法可以从我的回调中将一两列添加到由CSVLogger正确写入的日志中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-29 01:14:51

您可以将其他指标插入到字典logs中。

代码语言:javascript
复制
from keras.callbacks import Callback

class ComputeMetrics(Callback):
    def on_epoch_end(self, epoch, logs):
        logs['val_metric'] = epoch ** 2  # replace it with your metrics
        if (epoch + 1) % 10 == 0:
            logs['test_metric'] = epoch ** 3  # same
        else:
            logs['test_metric'] = np.nan

只需记住在fit调用中将此回调放在CSVLogger之前。列表中后面出现的回调将接收logs的修改版本。例如,

代码语言:javascript
复制
model = Sequential([Dense(1, input_shape=(10,))])
model.compile(loss='mse', optimizer='adam')
model.fit(np.random.rand(100, 10),
          np.random.rand(100),
          epochs=30,
          validation_data=(np.random.rand(100, 10), np.random.rand(100)),
          callbacks=[ComputeMetrics(), CSVLogger('1.log')])

现在,如果您查看输出日志文件,您将看到另外两个列test_metricval_metric

代码语言:javascript
复制
epoch,loss,test_metric,val_loss,val_metric
0,0.547923130989,nan,0.370979120433,0
1,0.525437340736,nan,0.35585285902,1
2,0.501358469725,nan,0.341958616376,4
3,0.479624577463,nan,0.329370084703,9
4,0.460121934414,nan,0.317930338383,16
5,0.440655426979,nan,0.307486981452,25
6,0.422990380526,nan,0.298160370588,36
7,0.406809270382,nan,0.289906248748,49
8,0.3912438941,nan,0.282540213466,64
9,0.377326357365,729,0.276457450986,81
10,0.364721306562,nan,0.271435074806,100
11,0.353612961769,nan,0.266939682364,121
12,0.343238875866,nan,0.263228923082,144
13,0.333940329552,nan,0.260326927304,169
14,0.325931007862,nan,0.25773427248,196
15,0.317790198028,nan,0.255648627281,225
16,0.310636150837,nan,0.25411529541,256
17,0.304091459513,nan,0.252928718328,289
18,0.298703012466,nan,0.252127869725,324
19,0.292693507671,6859,0.251701972485,361
20,0.287824733257,nan,0.251610517502,400
21,0.283586999774,nan,0.251790778637,441
22,0.27927801609,nan,0.252100949883,484
23,0.276239238977,nan,0.252632959485,529
24,0.273072380424,nan,0.253150621653,576
25,0.270296501517,nan,0.253555388451,625
26,0.268056542277,nan,0.254015884399,676
27,0.266158599854,nan,0.254496408701,729
28,0.264166412354,nan,0.254723013639,784
29,0.262506003976,24389,0.255338237286,841
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48488549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档