版权声明:转载请声名出处,谢谢 https://blog.csdn.net/u010591976/article/details/82082464
Tensorflow基础操作
import tensorflow as tf
a = 3
#创建变量
w = tf.Variable([[0.5,1.0]])
x = tf.Variable([[2.0],[1.0]])
#变量操作
y = tf.matmul(w,x) #matmul矩阵相乘的操作,在session中才能完成
print(w)
#初始化
#在Session里面对变量进行全局初始化,打开Session,把w和x放到图中
#推荐with结构实现
init_op = tf.global_variables_initializer()
#启动图:
with tf.Session() as sess:
sess.run(init_op) #run初始化操作
print(y.eval()) #tf中不能直接打印y的值,需要打印y.eval()
#tensorflow常用基本操作
#推荐使用float32,在cpu和gpu中都支持,不容易出问题
from tensorflow import int32
tensor = tf.zeros([3, 4], int32) #[3,4] 3*4矩阵,数据类型
tf.zeros_like(tensor)
tf.ones([2, 3], int32)
tf.ones_like(tensor)
#创建常量:
tensor = tf.constant([1,2,3,4,5,6,7,8,9])
tensor = tf.constant(-1.0,shape=[2,3])
#在10.0—12.0之间创建3个数
tf.linspace(10.0,12.0,3,name='linspace')
#开始的数字,delta是增量,limit是边界
start =1
limit = 100
delta = 3
tf.range(start, limit, delta)
#2*3的随机矩阵,定义平均数和方差
norm = tf.random_normal([2,3], mean=-1, stddev=4)
#洗牌操作,先定义常量,在对该常量进行shuffle操作,但是这个操作要通过session操作才能执行
#将session可以赋给一个变量sess
c = tf.constant([[1,2],[3,4],[5,6]])
shuff = tf.random_shuffle(c)
sess= tf.Session()
print(sess.run(norm))
print(sess.run(shuff))
#循环每次加1在tensorflow中实现
#定义变量和操作
#简单操作和很复杂的操作用的代码差不多,例如加法和反向传播
state = tf.Variable(0)
new_value = tf.add(state, tf.constant(1))#新值,state+1,add加法操作
update = tf.assign(state, new_value) #assign将后面的参数赋给前面的参数
#以上是计算的骨架
with tf.Session() as sess: #打开session
sess.run(tf.global_variables_initializer())#run初始化,得到上面的三个变量
print(sess.run(state))
for _ in range(3): #循环三次,每次得到新的计算结果,都要执行一次更新操作run
sess.run(update)
print(sess.run(state))
#tf.train.Saver
#保存当前的session,执行了初始化之后的操作,在下面的模块可以调用
w = tf.Variable([[0.5,1.0]])
x = tf.Variable([[2.0],[1.0]])
y = tf.matmul(w,x)
init_op = tf.global_variables_initializer()
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(init_op)
save_path = saver.save(sess,"D://PycharmProjects//tensorflow//model//test")
print("Model saved in file:",save_path)
#使用numpy在tensorflow中进行初始化,可以实现但是不推荐
#使用tf中的操作进行初始化
import numpy as np
a = np.zeros((3,3)) #np初始化
ta = tf.convert_to_tensor(a) #将np转换到tf中,不推荐这样,使用tf中的操作进行初始化
with tf.Session() as sess:
print(sess.run(ta)) #打印转换的结果