02-1 创建图,启动图
import tensorflow as tf
m1=tf.constant([[3,3]])
m2=tf.constant([[2],[3]])
product=tf.matmul(m1,m2)
print(product)
Tensor(“MatMul:0”, shape=(1, 1), dtype=int32)
sess=tf.Session()
result=sess.run(product)
print(result)
sess.close()
[[15]]
with tf.Session() as sess:
result=sess.run(product)
print(result)
[[15]]
02-2 变量
import tensorflow as tf
x=tf.Variable([1,2])
a=tf.Variable([3,3])
#减法
sub=tf.subtract(x,a)
#加法
add=tf.add(x,sub)
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(sub))
print(sess.run(add))
[-2 -1]
[-1 1]
state=tf.Variable(0,name='counter')
new_state=tf.add(state,1)
#赋值
update=tf.assign(state,new_state)
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(state))
for _ in range(5):
sess.run(update)
print(sess.run(state))
0
1
2
3
4
5
02-3 fetch and feed
import tensorflow as tf
#fetch
input1=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.Session() as sess:
result=sess.run([mul,add])
print(result)
[21.0, 7.0]
#feed
input1=tf.placeholder(tf.float32)
input2=tf.placeholder(tf.float32)
output=tf.multiply(input1,input2)
with tf.Session() as sess:
#feed数据以字典形式传入
print(sess.run(output,feed_dict={input1:[7.],input2:[2.]}))
[14.]
02-4 tensorflow简单示例
import tensorflow as tf
import numpy as np
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.train.GradientDescentOptimizer(0.2)
train=optimizer.minimize(loss)
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for step in range(201):
sess.run(train)
if step%20 == 0:
print(step,sess.run([k,b]))
0 [0.050634142, 0.099062786]
20 [0.1010395, 0.19946787]
40 [0.10059486, 0.19969556]
60 [0.100340396, 0.1998258]
80 [0.100194775, 0.19990031]
100 [0.10011147, 0.19994295]
120 [0.10006379, 0.19996735]
140 [0.10003651, 0.19998132]
160 [0.10002089, 0.1999893]
180 [0.10001196, 0.19999388]
200 [0.10000685, 0.1999965]