本文通过简要方式说明了TensorFlow的框架,目前大部分还是使用Tensorflow1.0来做,转移到2.0时,代码调用的方式会不同。 下面是导入所用的库
import numpy as np
#import tensorflow as tf
import tensorflow.compat.v1 as tf
#tf.compat.v1.disable_eager_execution()
tf.disable_v2_behavior()
定义损失函数,以及采用梯度下降法进行优化
coefficigents=np.array([[1.],[-20],[100.]])
w=tf.Variable(0,dtype=tf.float32)
x=tf.placeholder(tf.float32,[3,1])
#cost=tf.add(tf.add(w**2,tf.multiply(-10.,w)),25)
cost=x[0][0]*w**2+x[1][0]*w+x[2][0]
train=tf.train.GradientDescentOptimizer(0.01).minimize(cost)
init=tf.global_variables_initializer()
session=tf.Session()
session.run(init)
print(session.run(w))
迭代1000次得到的最优解
for i in range(1000):
session.run(train,feed_dict={x:coefficigents})
print(session.run(w))
所以tensorflow最基本得框架就是通过定义损失函数,然后采用什么样的方式逼近最优解。此文中采用的是梯度下降法,而给定损失函数后(所谓的前向传播)在训练的过程中框架内会自主实现(后向传播)。