import tensorflow as tf
tf.__version__
'2.3.0'
# 创建行向量
x = tf.constant(range(12))
x
print(x.shape)
print(len(x)) # 获取向量中元素的个数
(12,)
12
# 使用reshape函数把行向量x的形状改为(3, 4)
x = tf.reshape(x,(3,4))
x
tf.zeros((2,3,4))
tf.ones((3,4))
y = tf.constant([[1,2,3,4],[4,5,6,7],[7,8,9,10]])
y
随机生成tensor中每个元素的值。下面我们创建一个形状为(3, 4)的tensor。它的每个元素都随机采样于均值为0、标准差为1的正态分布。
tf.random.normal(shape=(3,4), mean=0, stddev=1)
tf.random.normal(shape=(3,4), mean=0, stddev=1)
print("x => ", x.shape)
print("y => ", x.shape)
print(x)
print(y)
x => (3, 4)
y => (3, 4)
tf.Tensor(
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]], shape=(3, 4), dtype=int32)
tf.Tensor(
[[ 1 2 3 4]
[ 4 5 6 7]
[ 7 8 9 10]], shape=(3, 4), dtype=int32)
res01 = x + y
res01
res02 = x * y
res02
res03 = x / y
res03
y = tf.cast(y, tf.float32) # 将y的类型转换为 float32
tf.exp(y) # 指数运算
y = tf.cast(y,tf.int32)
tf.matmul(x, tf.transpose(y))
print(x)
print(y)
tf.Tensor(
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]], shape=(3, 4), dtype=int32)
tf.Tensor(
[[ 1 2 3 4]
[ 4 5 6 7]
[ 7 8 9 10]], shape=(3, 4), dtype=int32)
tf.concat([x,y],axis = 0)
tf.concat([x,y],axis = 1)
tf.equal(x,y)
tf.reduce_sum(x) # numpy=66 结果
x = tf.cast(x, tf.float32)
tf.norm(x)
A = tf.reshape(tf.constant(range(3)), (3,1))
B = tf.reshape(tf.constant(range(2)), (1,2))
A,B
(,
)
# 触发广播机制, A 中元素把第一列复制到第二列 => (3,2)
# B 中元素把第一行复制到第二行和第三行 => (3,2)
A + B
x[0:3] # 取索引为 0, 1, 2的三行
x = tf.Variable(x)
x
x[1,2].assign(9)
x = tf.Variable(x)
x[1:2,:].assign(tf.ones(x[1:2,:].shape, dtype=tf.float32) * 3)
import numpy as np
P = np.ones((3,4))
T = tf.constant(P)
T
np.array(T)
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])