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

Google TensorFlow课程 编程笔记(1)

程序员文章站 2022-05-31 18:55:16
...
疑问点1:
  • b = tf.constant([4, 6, 3])这个矢量的形状表示为什么?
        疑问出现背景:

Google TensorFlow课程 编程笔记(1)

疑问拓展: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] ](这即是一个张量的形状)



————————————————————————————————————————————————


练习二:

暂无疑问点


练习记录:
Google TensorFlow课程 编程笔记(1)


附录:
疑问点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