Google TensorFlow课程 编程笔记(1)
程序员文章站
2022-05-31 18:55:16
...
疑问点1:
- b = tf.constant([4, 6, 3])这个矢量的形状表示为什么?
疑问出现背景:
疑问拓展:b变形为[1,3]的new_b,既从 [4 6 3]变形为[[4 6 3]]这两个形状有何区别,是否均为一列三行?
new_b有没有办法变形回b,实测将形状修改为[0,3]会出现错误?
问题解决:
疑问点1:b = tf.constant([4, 6, 3])这个矢量的形状表示为什么?
答:这是一个向量,只有是一个一维数组,在TensorFlow里无法使用reshape指令改成成这个形状。因为TensorFlow处理数据的单位是张量(即tensor,所以才叫TensorFlow)。所以此处进行乘法运算之前要先将b = tf.constant([4, 6, 3])这个向量改变成一个张量,然后再和其他张量进行运算。所以b = tf.constant([4, 6, 3])需要整形成[1,3],即[ [ 4,6,3] ](这即是一个张量的形状)
————————————————————————————————————————————————
练习二:
暂无疑问点
练习记录:
附录:
疑问点1程序文本:
with tf.Graph().as_default(), tf.Session() as sess:
a = tf.constant([5, 3, 2, 7, 1, 4])
b = tf.constant([4, 6, 3])
new_a = tf.reshape(a, [6,1])
new_b = tf.reshape(b, [1,3])
multiply_result = tf.matmul(new_a, new_b)
#print multiply_result.eval()
#print new_a.eval()
print(a.eval())
print(b.eval())
print(new_a.eval())
print(new_b.eval())
print(multiply_result.eval())
练习2的程序文本:
with g.as_default():
with tf.Session() as sess:
dice1 = tf.Variable(tf.random_uniform([10, 1],#定义骰子1
minval=1, maxval=7,
dtype=tf.int32))
dice2 = tf.Variable(tf.random_uniform([10, 1],#定义骰子2
minval=1, maxval=7,
dtype=tf.int32))
dice_sum = tf.add(dice1,dice2)#计算和
resulting= tf.concat(values=[dice1, dice2, dice_sum], axis=1)#连接三个数组,axis为矢量的维度1表示为2维矢量
sess.run(tf.global_variables_initializer())#所有变量初始化
print(resulting.eval())
课程地址:https://developers.google.cn/machine-learning/crash-course/
练习地址:https://colab.research.google.com/notebooks/mlcc/creating_and_manipulating_tensors.ipynb?hl=zh-cn
关键词:向量,张量,变形,TensorFlow,reshape
下一篇: PHP+Mysql统计文件下载次数实例