1. tf程序:构建计算图和执行计算
import tensorflow as tf
import sys #用以打印版本信息
#定义计算图(The computation graph)
w = tf.Variable([[0.5,1.0]]) #行向量
x = tf.Variable([[2.0],[1.0]]) #列向量
y = tf.matmul(w,x)#这边矩阵的顺序不能乱
print(y)#这只能打印数据格式
#python3.5的print后需要加括号
#对变量进行初始化
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(y.eval())
print(sys.version)#打印python的版本
print(tf.__version__)#打印TensorFlow的版本
print(tf.__path__)#打印TensorFlow的安装目录
程序的输出如下:
Tensor("MatMul:0", shape=(1, 1), dtype=float32)
[[ 2.]]
3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]
0.12.1
['C:\\Users\\CaoYichao\\Anaconda3\\lib\\site-packages\\tensorflow']
这里y代表的是计算过程,名称为“MatMul:0”,维度为(1, 1)的矩阵,数据类型为float32。
2.for循环执行3次计算图
import tensorflow as tf
#构建计算图
state = tf.Variable(0)
new_value = tf.add(state,tf.constant(1))
update = tf.assign(state,new_value)
#执行计算
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(state))
print("for loop")
for i in range(3):
sess.run(update) #执行3次计算图
print(state.eval())
sess.run(tf.assign(state,100))
print(state.eval())
打印信息如下:
0
for loop
1
2
3
100
3.numpy矩阵转tensor(不推荐使用)
import tensorflow as tf
import numpy as np
a = np.zeros((3,3))
ta = tf.convert_to_tensor(a)
with tf.Session() as sess:
print(sess.run(ta))
打印如下:
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
4.placeholder占位符的使用
import tensorflow as tf
#构建计算图
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.mul(input1,input2)
#执行计算
with tf.Session() as sess:
print(sess.run([output],feed_dict={input1:[4.0],input2:[2.5]}))
打印如下:
[array([ 10.], dtype=float32)]