TensorFlow基本操作

1,TensorFlow常量

import tensorflow as tf

tf.constant([2,4])                                    #一维向量
zero_t=tf.zeros([2,3],tf.int64)                       #生成一个2×3的0矩阵
one_1=tf.ones([3,1],tf.int8)                          #生成一个3×1的全1元素矩阵
t2=tf.linspace(2.0,6.0,5)                             #一维向量,元素取值在2到6之间取5个值
t3=tf.range(0,10,0.5)                                 #生成一个一维向量,元素取值在0到10之间不包括10,取值间隔为0.5
t4=tf.random.normal([3,3],mean=2,stddev=3,seed=12)    #正态分布,均值mean,方差stddev,
t5=tf.random.truncated_normal([2,3],stddev=4,seed=12) #截断正态分布,seed是种子,但是不知道啥子意思
t6=tf.random.uniform([3,5],minval=1,maxval=5,seed=12) #均匀分布,最小值为1,最大值为5
t7=tf.image.random_crop(t6,[2,2])                     #在t6中随机截取一个2×2的矩阵
t=tf.constant([[2,3],[3,5],[4,6]])                    #生成一个指定矩阵
t8=tf.random.shuffle(t)                               #随机地将张量沿其第一维度打乱.(不太懂)
t9=tf.eye(5)                                          #生成一个5×5的单位矩阵

with tf.compat.v1.Session() as sess:
    print('zero_t',sess.run(zero_t))
    print('one_1',sess.run(one_1))
    print('t2',sess.run(t2))
    print('t3',sess.run(t3))
    print('t4',sess.run(t4))
    print('t5',sess.run(t5))
    print('t6',sess.run(t6))
    print('t7',sess.run(t7))
    print('t8',sess.run(t8))
    print('t9',sess.run(t9))

2,占位符

声明数据类型,申请内存,方便后面赋值。

import tensorflow as tf
x=tf.compat.v1.placeholder('float32')
z=tf.compat.v1.placeholder('int32')
y=2*x
w=2*z
data=tf.random.uniform([4,5],10) #这是一个tensor对象,不能直接进行矩阵运算,tensor就是一个张量
with tf.compat.v1.Session() as sess:
    x_data=sess.run(data)   #转换成一个np.ndarray对象,我理解的就是一个矩阵
    print('-------这是x的赋值============')
    print(x_data)
    print('-------这是2*x的结果==========')
    print(sess.run(y,feed_dict={x:x_data})) #feed_dict是对占位符x进行赋值,赋的值为x_data
    print(sess.run(y,feed_dict={x:32.0}))
    print(sess.run(w,feed_dict={z:22})) #对占位符进行赋值,要看前面定义的占位符的类型。根据占位符的类型进行赋值

 3,基本运算

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

import tensorflow as tf
sess=tf.compat.v1.InteractiveSession()
x=tf.Variable(tf.random.uniform([3,3],0,2,dtype=tf.int32))
x.initializer.run()
y=tf.Variable(tf.random.uniform([3,3],1,6,dtype=tf.int32))
y.initializer.run()
a=tf.add(x, y, name=None)        # 矩阵加法
b=tf.subtract(x, y, name=None)   # 矩阵减法
c=tf.multiply(x, y, name=None)   # 两个矩阵对应元素相乘
c_2=x*y                          # 这个*和multiply效果一样
c_1=tf.matmul(x,y)               # 矩阵相乘
d=tf.divide(x, y, name=None)     # 除法 ,矩阵对应元素相除
e=tf.math.mod(x, y, name=None)   # 相除取余
print('x\n',x.eval())
print('y\n',y.eval())
print('这是加法\n',a.eval())
print('这是减法\n',b.eval())
print('这是乘法\n',c.eval())
print('这是乘法\n',c_2.eval())
print('这是矩阵乘法\n',c_1.eval())
print('这是除法\n',d.eval())
print('这是取余\n',e.eval())

 

 

posted @ 2019-07-17 10:47  扛把子毛  阅读(370)  评论(1编辑  收藏  举报