tensorflow基础知识学习

一:基础单位
张量:多维数组(列表) 阶:表示张量的维度
标量:0阶数组 例子:s=1,2,3
向量:1阶数组 例子:v=[1,2,3]
矩阵:2阶数组 例子:m=[[1,2,3],[4,5,6],[7,8,9]]
张量:n阶数组 例子:t=[[…n个

二:定义数组
1.常量
tf.constant([3,2,1]) #直接给定数组[3,2,1]
tf.zeros([2,3],int32)#给定int32类型2行3列全为0的数组
tf.ones([2,3],int32)#给定int32类型2行3列全为1的数组
tf.fill([2,3],6) #给定2行3列全为6的数组
2.变量
#定义一个2行3列,满足方差为2,均值为0,随机种子为1高斯分布的变量
tf.variable(tf.randon_normal([2,3],stddev=2,mean=0,seed=1))
其中tf.randon_normal也可以用tf.trucated_normal(去掉过大偏离点的正态分布),tf.random_uniform(均匀分布)代替
3.需输入变量
#效果等同于定义了一个虚参(个人感觉),在会话中调用它需要赋值
tf.placeholder(tf.float32,shape=(2,3))

三:简单的实现代码

import tensorflow as tf

x = tf.constant([[1.0,2.0]])
w = tf.constant([[3.0],[4.0]])

result = tf.matmul(x,w)
print(result)
Tensor("MatMul:0", shape=(1, 1), dtype=float32)

result是MatMul:0的张量,是一维长度为1的数组,数据类型是float32
值得注意的是这里并没有输出result的值,而只是返回了result的类型,也就是说计算图只描述运算过程,但未计算运算结果(只搭建网络,不运算)
返回的是x1*w1+x2*w2这个形式,但不计算具体值
那么如何才能计算出输出结果呢?这里需要引入session会话:

import tensorflow as tf

x = tf.constant([[1.0,2.0]])
w = tf.constant([[3.0],[4.0]])

result = tf.matmul(x,w)
print(result)

with tf.Session() as sess:
    print(sess.run(result))
Tensor("MatMul:0", shape=(1, 1), dtype=float32)
[[11.]]

猜你喜欢

转载自blog.csdn.net/weixin_43968119/article/details/84851670