Tensorflow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。Tensor 看作是一个 n 维的数组或列表。图必须在会话(Session)里被启动。
登录后复制
#2-1 创建图,启动图#创建一个常量opm1=tf.constant([[3,3]])#创建一个常量opm2=tf.constant([[2],[3]])
#创建一个矩阵乘法opproduct=tf.matmul(m1,m2)print(product)with tf.compat.v1.Session() as sess:
# run(product)触发了图中的3个op result = sess.run(product)
print(result)1.2.3.4.5.6.7.8.9.10.11.12.13.14.
结果为:
登录后复制
#2-2变量#创建一个变量初始化0state=tf.Variable(0,name='counter')#创建op,作用是使state加1new_value=tf.add(state,1)
#赋值opupdate=tf.compat.v1.assign(state,new_value)with tf.compat.v1.Session() as sess:
#变量初始化 sess.run(tf.compat.v1.global_variables_initializer()) print(sess.run(state))
for _ in range(5): sess.run(update) print(sess.run(state))1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
输出为:
登录后复制
#2-3Fetch and Feed#Fetchinput1=tf.constant(3.0)input2=tf.constant(2.0)input3=tf.constant(5.0)add=tf
.add(input2,input3)mul=tf.multiply(input1,add)with tf.compat.v1.Session() as sess: result=sess
.run([mul,add]) print(result)#Feed#创建占位符input1=tf.compat.v1.placeholder(tf.float32)input2=tf
.compat.v1.placeholder(tf.float32)output=tf.multiply(input1,input2)with tf.compat.v1.Session() as sess:
#feed的数据以字典传入 print(sess.run(output,feed_dict={input1:[7.],input2:[2.]}))1.2.3.4.5.6.7.8.9.10.11.12.
13.14.15.16.17.18.19.20.21.22.
输出为:
登录后复制
import numpy as np#使用np生成100个随机点x_data=np.random.rand(100)y_data=x_data*0.1+0.2
#构造一个线性模型b=tf.Variable(0.)k=tf.Variable(0.)y=k*x_data+b#二次代价函数loss=tf.reduce_mean(tf
.square(y_data-y))#定义一个梯度下降法来进行训练的优化器optimizer=tf.compat.v1.train.GradientDescentOptimizer(0.2)
#最小化代价函数train=optimizer.minimize(loss)
#对变量进行初始化init=tf.compat.v1.global_variables_initializer()with tf.compat.v1.Session() as sess: sess
.run(init) for step in range(201): sess.run(train) if step%20==0: print(step,sess
.run([k,b]))1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.
输出为:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删