欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tensorflow入门:tensor初探

程序员文章站 2024-03-11 17:06:55
...

导入tensorflow

import tensorflow as tf

输出tensorflow的版本

print(tf.__version__)

创建tensor

x = tf.constant(range(12))

tensor的形状x.shape

tensor的长度len(x)

改变tensor的形状

X=tf.reshape(x,(3,4))
X=tf.reshape(x,(-1,4))
X=tf.reshape(x,(3,-1))

同过Python的列表list创建tensor

tf.constant([[2,2,3,4]])

全0tensor

tf.zeros((2,3,4))

全1tensor

tf.ones((3,4))

正太随机tensor

tf.random.normal(shape=[3,4],mean=0,stddev=1)

运算

按元素的加减乘除

X+Y,X-Y,X*Y,X/Y

按元素指数运算

Y=tf.cast(Y,tf.float32)
tf.exp(Y)

矩阵乘法

Y=tf.cast(Y,tf.int32)
tf.matmul(X,tf.transpose(Y))

连接多个tensor

tf.concat([X,Y],axis=0)

对所有元素求和得到只有一个元素的tensor

tf.reduce_sum(X)

tensor的广播

对两个形状不同的tensor按元素运算时,可能会触发广播机制:先适当复制元素使这两个tensor形状相同后再按元素运算

索引

访问

X[1:2]

为元素赋值

X=tf.Variable(X)
X[1,2].assign(9)
X[1:2,:].assign(tf.ones(X[1:2,:].shape,dtype=float32)*12)

内存开销

一般每个运算操作都会新开内存来存储运算结果

把结果写到特定内存

Z[:].assign(X+Y) //开临时内存
X.assign_add(Y) //不开临时内存
X+=Y
X[:]=X+Y

tensor和Numpy相互转换

P=np.ones((2,3))
D=tf.constant(P)
np.array(D)

tensorflow help

查询一个模块内提供了哪些可调用函数和类

dir(tf.dtypes)
dir(tf.random)

帮助函数

help(tf.ones)