Tensorflow 实战google深度学习框架 03
2018-03-11 14:15
801 查看
自定义损失函数
import tensorflow as tf from numpy.random import RandomState # 1. 定义神经网络的相关参数和变量。¶ batch_size = 8 x = tf.placeholder(tf.float32, shape=(None, 2), name="x-input") y_ = tf.placeholder(tf.float32, shape=(None, 1), name='y-input') w1= tf.Variable(tf.random_normal([2, 1], stddev=1, seed=1)) y = tf.matmul(x, w1) # 2. 设置自定义的损失函数。 # 定义损失函数使得预测少了的损失大,于是模型应该偏向多的方向预测。 loss_less = 10 loss_more = 1 loss = tf.reduce_sum(tf.where(tf.greater(y, y_), (y - y_) * loss_more, (y_ - y) * loss_less)) train_step = tf.train.AdamOptimizer(0.001).minimize(loss) # 3. 生成模拟数据集。 rdm = RandomState(1) X = rdm.rand(128,2) Y = [[x1+x2+(rdm.rand()/10.0-0.05)] for (x1, x2) in X] # 4. 训练模型 with tf.Session() as sess: init_op = tf.global_variables_initializer() sess.run(init_op) STEPS=5000 for i in ranges(STEPS): start = i*batch_size % 128 end = i*batch_size % 128 + batch_size sess.run(train_step,feed_dict{x:X[start:end], y_:Y[start:end]}) if i % 1000 ==0: print("after %d training steps(s) , w1 is: " %(i)) print sess.run(w1), "\n" print "Final w1 is: \n", sess.run(w1) # 5. 重新定义损失函数,使得预测多了的损失大,于是模型应该偏向少的方向预测。 loss_less = 1 loss_more = 10 loss = tf.reduce_sum(tf.where(tf.greater(y, y_), (y - y_) * loss_more, (y_ - y) * loss_less)) train_step = tf.train.AdamOptimizer(0.001).minimize(loss) #6. 定义损失函数为MSE。 loss = tf.losses.mean_squared_error(y, y_) train_step = tf.train.AdamOptimizer(0.001).minimize(loss) with tf.Session() as sess: init_op = tf.global_variables_initializer() sess.run(init_op) STEPS = 5000 for i in range(STEPS): start = (i*batch_size) % 128 end = (i*batch_size) % 128 + batch_size sess.run(train_step, feed_dict={x: X[start:end], y_: Y[start:end]}) if i % 1000 == 0: print("After %d training step(s), w1 is: " % (i)) print sess.run(w1), "\n" print "Final w1 is: \n", sess.run(w1)
相关文章推荐
- TensorFlow:实战Google深度学习框架(五)图像识别与卷积神经网络
- TensorFlow:实战Google深度学习框架,数据增强
- Tensorflow 实战Google深度学习框架 Python3 代码
- TensorFlow:实战Google深度学习框架(六)图像数据处理
- Tensorflow 实战google深度学习框架 07 滑动平均模型
- Tensorflow 实战google深度学习框架 02
- 迁移学习源码全注释 - 《Tensorflow 实战 Google 深度学习框架》源码注释
- TensorFlow-实战Google深度学习框架 笔记(上)
- TensorFlow:实战Google深度学习框架(一)计算、数据、运行模型
- Tensorflow 实战google深度学习框架 05 学习率设置
- Tensorflow 实战google深度学习框架 08 变量域
- Tensorflow 实战google深度学习框架 01
- Tensorflow 实战Google深度学习框架
- 免费教材丨第55期:Python机器学习实践指南、Tensorflow 实战Google深度学习框架
- Tensorflow 实战google深度学习框架 04
- Tensorflow 实战google深度学习框架 10 pb文件的保存&加载
- (Tensorflow之八)MNIST数字识别源码--实战Google深度学习框架5.2小节
- Tensorflow 实战 google 深度学习框架 笔记(一)滑动模型
- Tensorflow 实战Google深度学习框架(完整版) 百度网盘
- TensorFlow:实战Google深度学习框架(二)实现简单神经网络