一、tensorflow定义变量和显示结果
#先导入模块
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#定义变量
w = tf.Variable([2,3])
x = tf.Variable([ [1,1],
[2,2]]
)
#矩阵相乘,在tensorflow模块下直接print是显示不出y的
y = tf.multiply(w,x)
#先初始化全局变量
init = tf.global_variables_initializer()
#打开一个会议
with tf.Session() as sess:
#先运行初始化
sess.run(init)
print(sess.run(y))
#或者
print(y.eval())
二、数组操作
#tensorflow一般都非常支持float32
a = tf.zeros([3, 4],tf.float32)
tensor = tf.Variable([[1, 2, 3], [4, 5, 6]])
b = tf.zeros_like(tensor)
c1 = tf.constant([1,2,3,4,5])
c2 = tf.constant(-1,shape = [2,3])
d = tf.linspace(2.0,6.0,3,name='linspace')
e = tf.range(2,9,3)
#打开一个模块
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(a.eval())
print(b.eval())
print(c1.eval())
print(c2.eval())
print(d.eval())
print(e.eval())
#或者用下面这种写法,tensorflow官方推荐用上面的写法
sess = tf.Session()
print(sess.run(a))
三、生成随机数和洗牌
#生成高斯分布的随机数,mean为平均值,stddev为标准差
norm = tf.random_normal([3,3],mean=0,stddev=0.2)
#洗牌
c = tf.constant([[1,2],[2,3],[3,4]])
shuffle = tf.random_shuffle(c)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(norm))
print(sess.run(shuffle))
####运行结果如下:
[[ 0.26791158 0.04790247 0.0070327 ]
[-0.10467913 0.11408339 -0.32494265]
[ 0.16075054 0.05266313 -0.00356796]]
[[1 2]
[2 3]
[3 4]]
四、实现自加小程序
#实现自加
a = tf.Variable(0)
b = tf.add(a,tf.constant(1))
#把b的值赋给a
update = tf.assign(a,b)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(a))
for _ in range(4):
sess.run(update)
print(sess.run(a))
五、numpy类型转换为tensorflow类型
#numpy类型转化为tensorflow类型
a = np.array([[1,2],
[3,4]
])
ta = tf.convert_to_tensor(a)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(ta))
六、定义变量的另一种方式(不指定初始值,指定该变量的类型或者骨架)
#placeholder是占位符的意思,先定义变量的骨架,后面用时再通过字典的形式喂给
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
c = tf.multiply(a,b)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(c,feed_dict = {a:2,b:3}))