TensorFlow之损失函数、学习率、正则

#损失函数记录
import tensorflow as tf
#交叉熵的两种表示
cross_entropy=-tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)))
cross_entropy=tf.nn.softmax_cross_entropy_with_logits(y,y_)
#均方误差的表示
mse=tf.reduce_mean(tf.square(y-y_))

#支持自定义,例如
loss=tf.reduce_sum(tf.select(tf.greater(y,y_),y-y_,y_-y))
tf.clip_by_value#定义最大值和最小值的,小于最小值的为最小值,大于最大值的为最大值
tf.greater(y,y_)#比较两个值的大小(元素级),y>y_为true
tf.select(a,b,c)#若a为true,则选择b,否则选择c



使用指数衰减的学习率,在迭代初期得到较高的下降速度,可以在较小的训练轮数下取得不错的收敛程度。
TRAINING_STEPS = 100
global_step = tf.Variable(0)
LEARNING_RATE = tf.train.exponential_decay(0.1, global_step, 10, 0.96, staircase=True)#初始学习率0.1,没迭代10轮更改一次学习率,更改为学习率*0.96

x = tf.Variable(tf.constant(5, dtype=tf.float32), name="x")
y = tf.square(x)
train_op = tf.train.GradientDescentOptimizer(LEARNING_RATE).minimize(y, global_step=global_step)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(TRAINING_STEPS):
        sess.run(train_op)
        if i % 10 == 0:
            LEARNING_RATE_value = sess.run(LEARNING_RATE)
            x_value = sess.run(x)
            print "After %s iteration(s): x%s is %f, learning rate is %f."% (i+1, i+1, x_value, LEARNING_RATE_value)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值