TensorFlow 1
分类: 1,protocol Buffer 处理结构化数据工具; (xml,json)
2,Bazel 自动化构建工具, 编译;
tensor 张量; 张量就是多维数组;
flow 流;
两个阶段:1 定义计算图中所有的计算;
2,执行计算;
张量tensor:
1,多维数组;
2,零阶张量表示标量(scalar),就是一个数;
3,一阶张量表示为向量(vector), 是一维数组;
。。。。。
第n阶 --------------------------------n 维数组;
一个张量主要保存三个属性; name 名字、 shape 维度、 type 类型 ;
张量的使用:
用途分类:1, 对中间计算结果的引用;
2, 当计算图构造完成之后,张量可以用来获得计算结果,也就是得到真实数字;
1, 练习
[root@shenzhen ~]# cat /server/tensorflow/tensor1.py
#!/usr/local/bin/python3
#coding:utf-8 import tensorflow as tf
import numpy as np #create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3 ###create tensorflow structure start###
Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases = tf.Variable(tf.zeros([1])) y = Weights*x_data + biases loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss) #init = tf.initialize_all_variables()
init = tf.global_variables_initializer()
###create tensorflow structure start### sess = tf.Session()
sess.run(init) #very important for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(biases)) [root@shenzhen tensorflow]# python3 tensor1.py
2018-08-20 20:58:14.585672: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
0 [0.5822645] [0.00799593]
20 [0.27060172] [0.19762385]
40 [0.16020724] [0.26387033]
60 [0.12124781] [0.28724945]
80 [0.10749861] [0.2955002]
100 [0.10264634] [0.29841197]
120 [0.10093395] [0.29943955]
140 [0.10032961] [0.2998022]
160 [0.10011631] [0.2999302]
180 [0.10004105] [0.2999754]
200 [0.10001447] [0.29999134]
2,Session 会话 : 运行模型
[root@shenzhen tensorflow]# python3 tensor2.py
2018-08-21 20:02:22.863676: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
[[12]]
[root@shenzhen tensorflow]# vim tensor2.py
[root@shenzhen tensorflow]# python3 tensor2.py
2018-08-21 20:05:11.457492: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
[[12]]
[root@shenzhen tensorflow]# cat tensor2.py
#!/usr/local/bin/python3
#coding:utf-8 import tensorflow as tf matrix1 = tf.constant([[3,3]])
matrix2 = tf.constant([[2],
[2]])
product = tf.matmul(matrix1,matrix2) #matrix multiply np.dot(m1,m2) #method1
#sess = tf.Session()
#result = sess.run(product)
#print(result)
#sess.close() #method2
with tf.Session() as sess:
result2 = sess.run(product)
print(result2)
3, tensorflow 变量
创建变量;
[root@shenzhen tensorflow]# python3 tensor3.py
2018-08-21 20:48:45.724496: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
1
2
3
[root@shenzhen tensorflow]# cat tensor3.py
#!/usr/local/bin/python3
#coding:utf-8 import tensorflow as tf state = tf.Variable(0, name='counter')
#print(state.name)
one = tf.constant(1) new_value = tf.add(state, one)
update = tf.assign(state, new_value) init = tf.global_variables_initializer() #must have if define variable with tf.Session() as sess:
sess.run(init)
for _ in range(3):
sess.run(update)
print(sess.run(state))
tensorflow 传入值:
[root@shenzhen tensorflow]# python3 tensor4.py
2018-08-22 19:39:44.495986: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
[21.]
[root@shenzhen tensorflow]# cat tensor4.py
#!/usr/local/bin/python3
#coding:utf-8 import tensorflow as tf input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32) output = tf.multiply(input1,input2) with tf.Session() as sess:
print(sess.run(output, feed_dict={input1:[7.], input2:[3.]}))