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

2.2 数据操作

程序员文章站 2022-03-21 19:46:36
...

小白学深度学习

 
 

1. 创建tensor

x = tf.constant(range(12))
x.shape
len(x)

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

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

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

注意:这里使用tf.random.normal()函数时最后一定要加上dtype=tf.float32,不然可能会报错

 
 

2. 运算

## 数据类型转换函数
Y = tf.constant([1, 2, 3], dtype = tf.int32)
tf.cast(Y, tf.float32)

## 矩阵乘法函数
tf.matmul(X, tf.transpose(Y))

## 联结函数
tf.concat([X, Y], axis = 0)

## 求和函数
tf.reduce_sum(X)

## 求范数函数(默认为欧式范数)
tf.norm(X, ord = 1)

 
 

3. 索引

X = tf.reshape(tf.constant(range(12)), (3, 4))
X = tf.Variable(X)
X[1].assign(tf.ones(X[1].shape, dtype = tf.float32)*12)

 
 

4. 运算的内存开销

注:若两个实例的ID一致,则他们所对应的内存地址也相同

# 节省内存开销
## 方法1
Z = tf.Variable(tf.zeros_like(Y))
before = id(Z)
Z[:].assign(X + Y)
id(Z) == before
## 方法2
before = id(X)
X.assign_add(Y)
id(X) == before

 
 

5. tensor和NumPy互换

## NumPy实例变为tensor实例
P = np.ones((2, 3))
D = tf.constant(P)

## tensor实例变为NumPy实例
P = np.array(D)