前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tensorflow 测量工具,与自定义训练

tensorflow 测量工具,与自定义训练

作者头像
Dean0731
发布2020-05-11 09:51:58
3490
发布2020-05-11 09:51:58
举报
文章被收录于专栏:blog-技术博客blog-技术博客

代码语言:javascript
复制
# 新建测量器
m = tf.keras.metrics.Accuracy()
# 写入测量器
m.update_state([0,1,1],[0,1,2])
# 读取统计信息
m.result() # 准确率为0.66
# 清除
m.reset_states()
代码语言:javascript
复制
acc_meter = tf.keras.metrics.Accuracy()
loss_meter = tf.keras.metrics.Mean() # 求平均loss
op = tf.keras.optimizers.Adam(0.01)
import datetime
current_time = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
log_dir = "logs/"+current_time
summary_writer = tf.summary.create_file_writer(logdir)
for epoch in range(10):
    for step,(x,y) in enumerate(train_data):
        with tf.GradientTape() as tape:
            loss = tf.losses.categorical_crossentropy(y,model(x))
            loss_meter.update_state(loss) # 准确率
        grads = tape.gradient(loss,model.train_variables) # 求梯度
        op.apply_gradients(zip(grads,model.train_variables)) # 更新梯度 w = w - delta
        
        with summary_writer.as_default()
            tf.summary.scalar(name="loss",data=loss_meter.result().numpy(),step=xxxx)
        print(epoch,step,loss,loss_meter.result().numpy())   # numpy() 将tensor转化为变量
        loss_meter.reset_states()
    
    for step,(x,y) in enumerate(test_data):
        out = model(x)
        pred = tf.argmax(out,axis=-1)
        pred = tf.cast(pred,dtype=tf.int32)
        y = tf.cast(tf.argmax(y,axis=-1),dtype=tf.int32)
        acc_meter.update_state(y,pred)
    with summary_writer.as_default()
        tf.summary.scalar(name="acc",data=acc_meter.result().numpy(),step=xxxx)    
    print(epoch,acc_meter.result().numpy())
    acc_meter.reset_states()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档