来一次从零开始的tensorflow实战吧……
从简至繁吧,代码注释比较详细,来看:
# -*- coding: utf-8 -*-
import numpy as np
import tensorflow as tf
import time
x_0=np.array([[1],[2],[1]]) #生成一个损失函数系数数组
x=tf.placeholder(tf.float32,[3,1]) #占位符,第一个参数为类型,第二个为形状
w=tf.Variable([0],dtype=tf.float32) #定义变量w,初始值为0.0
loss=x[0]*w**2+x[1]*w+x[2] #定义损失函数
train=tf.train.GradientDescentOptimizer(0.001).minimize(loss) #梯度下降优化,学习率为0.001
init=tf.global_variables_initializer() #初始化变量
#启动图
sess=tf.Session()
sess.run(init)
print(sess.run(w)) #显示w初值
go=time.time() #开始执行的时间
for i in range(1000): #迭代1000次
sess.run(train,feed_dict={x:x_0}) #用feed_dict给x传值
over=time.time() #结束时间
print(sess.run(w)) #打印训练之后的w,-1为最优
print(str(1000*(over-go))+'ms') #显示训练时间,单位为s,转化为毫秒更直观
动态地给损失函数赋值,可以多角度更直观地查看训练的效果,目前大家需要关注两个值,学习率0.001和迭代次数