[深度学习] 张量 麻辣烫

import tensorflow as tf
x = tf.range(12)
print("\n")
print("x是:0开始的前12个整数")
print(x)
print("\n")
print("x的形状")
print(x.shape)
print("\n")
print("x的大小")
print(tf.size(x))
print("\n")
X = tf.reshape(x, (3, 4))
print("转换为形状为(3,4)的矩阵:")
print(X)
print("\n")
print("所有元素都设置为0:")
print(tf.zeros((2, 3, 4)))
print("\n")
print("所有元素都设置为1")
print(tf.ones((2, 3, 4)))
print("\n")
print("从均值为0,标准差为1的正态分布中随机采样:")
print(tf.random.normal(shape=[3, 4]))
print("\n")
print("每个元素赋予确定值")
print(tf.constant([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]]))
print("\n")
print("标准算术运算符(+、-、*、/和**)**是求幂")
x = tf.constant([1.0, 2, 4, 8])
y = tf.constant([2.0, 2, 2, 2])
print( x + y, x - y, x * y, x / y, x ** y )
print("\n")
print("一元运算符求幂")
print(tf.exp(x))
print("\n")
print("张量连结(concatenate)")
X = tf.reshape(tf.range(12, dtype=tf.float32), (3, 4))
Y = tf.constant([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
print(tf.concat([X, Y], axis=0))
print(tf.concat([X, Y], axis=1))
print("\n")
print("逻辑语句X == Y")
print(X == Y)
print("\n")
print("所有元素进行求和")
print(tf.reduce_sum(X))
print("\n")
print("沿着数组中长度为1的轴进行广播")
a = tf.reshape(tf.range(3), (3, 1))
b = tf.reshape(tf.range(2), (1, 2))
print(a)
print(b)
print("\n")
print("形状不匹配。 我们将两个矩阵广播为一个更大的3*2矩阵")
print(a + b)
print("\n")
print("索引和切片:用[-1]选择最后一个元素,可以用[1:3]选择第二个和第三个元素")
print(X[-1])
print(X[1:3])
print("\n")
print("Variable分配一个值之外,还可以通过索引来写入Variable的元素。")
X_var = tf.Variable(X)
print(X_var)
X_var[1, 2].assign(9)
print(X_var)
print("\n")
print("多个元素赋值相同的值。")
X_var = tf.Variable(X)
X_var[0:2, :].assign(tf.ones(X_var[0:2, :].shape, dtype=tf.float32) * 12)
print(X_var)
print("\n")
print("指向新分配的内存处的张量")
before = id(Y)
Y = Y + X
print(id(Y) == before)
print("assign将一个操作的结果分配给一个Variable。")
Z = tf.Variable(tf.zeros_like(Y))
print('id(Z) befor:', id(Z))
Z.assign(X + Y)
print('id(Z) after:', id(Z))
print("\n")
@tf.function # 通过tf.function装饰器来构建图
def computation(X, Y):
    Z = tf.zeros_like(Y)  # 这个未使用的值将被删除
    print("Z的id:", id(Z))
    A = X + Y  # 当不再需要时,分配将被复用
    B = A + Y
    C = B + Y
    return C + Y
print(computation(X, Y))
print("\n")
print("张量转换为NumPy张量,转换后的结果不共享内存。")
A = X.numpy()
B = tf.constant(A)
print(type(A), type(B))
print("\n")
print("转换后可以使用 内置函数")
a = tf.constant([3.5]).numpy()
print(a, a.item(), float(a), int(a))
print("\n")
print("作业1:将本节中的条件语句X == Y更改为X < Y或X > Y,然后看看你可以得到什么样的张量。")
print(X, Y)
print(X < Y)
print(X > Y)
print("\n")
print("作业2:用其他形状(例如三维张量)替换广播机制中按元素操作的两个张量。结果是否与预期相同?")
A = tf.reshape(tf.range(24, dtype=tf.float32), (2, 3, 4))
B = tf.reshape(tf.range(12, dtype=tf.float32), (3, 4))
print(A, B)
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值