1 Tensorflow的基础用法---计算损失

假设你有一个损失函数J需要最小化

情况一

J=w^2-10w+25 (w的一个固定的函数,系数是固定的)
现在使用Tensorflow将其最小化

import numpy as np
import tensorflow as tf

#定义参数w,利用tf.Variable
w = tf.Variable(0,dtype=tf.float32)

#定义损失函数
#cost = tf.add(tf.add(w**2,tf.multiply(-10,w)),25)
cost = w**2- 10w + 25 #一旦w被定义为Tensorflow变量,平方,乘法,和加减运算都重载了
#建立计算图,计算图基本实现前向传播,Tensorflow内置了必要的反向函数,可以自动实现反向传播

train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

init = tf.global_variables_initializer()
session = tf.Session()
session.run(init) #初始化全局变量

for i in range(1000):
    session.run(train)
print(session.run(w))

在这里插入图片描述

情况二

如果w的系数不是固定的,根据需要自行输入
J=a w^2 + b w + c 25
(注意图里面计算图的表示)
在这里插入图片描述
利用训练数据x来控制函数J的系数,利用placeholder把训练数据加入

x = tf.placeholder(tf.float32,[3,1])

要接入x的数据

coefficients = np.array([[1.],[-10.],[25]])

把系数数组接入变量x,在训练代码处

session.run(train,feed_dict={x:coefficients})

如果要做mini-batch梯度下降,在每次迭代时需要插入不同的mini-batch,就用feed_dict来喂入训练集的不同子集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值