一、什么是TensorFlow?
TensorFlow是一个采用数据流图(Data Flow Graphs),用于高性能数值计算的开源软件库。 Tensor(张量):即多维数组,是TensorFlow中数据表现的形式。Flow:基于数据流图(Data Flow Graphs)的计算。 Data Flow Graph用结点和线的有向图来描述数学计算。节点通常代表数学运算,边表示节点之间的某种联系,它负责传输多维数据(Tensors)。 计算图只是定义了这个计算
w = tf.constant(2.)
x = tf.constant(3.)
b = tf.constant(5.)
y = tf.add(tf.multiply(w,x),b,name='y')
会话 让定义后的计算图运行起来
**第一种书写:**
sess = tf.Session()
print(sess.run(c))
sess.close()
**第二种书写**
with tf.Session() as sess:
print(sess.run(y)
二、 相关知识点
1、tf.constant、tf.Variable 和 tf.placeholder的区别
(1)常量节点tf.constant:它的value值可以为一个数值也可以为一个列表 (2)变量节点tf.Variable:它可以用来存储图执行过程中需要更新的量,在神经网络中用来储存权重值 (3)tf.Variable 和 tf.placeholder的区别:两者都可以盛放变量,但在启动会话前,tf.Variable必须先被赋值和初始化,而tf.placeholder是需要在启动会话的时候传入值的;从直观上讲,tf.placeholder更加接近函数的形参。
import tensorflow as tf
w1 = tf.Variable(tf.truncated_normal([2,3],seed=1))
w2 = tf.Variable(tf.truncated_normal([3,1],seed=1))
x = tf.placeholder(dtype=tf.float32,shape=[1,2])
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print (sess.run(y,feed_dict={x:[[1,1]]}))
print (w1)
三、代码报错
(1)ValueError: Dimensions must be equal, but are 784 and 10 for ‘add’ (op: ‘Add’) with input shapes: [784,784], [10].
出现这种错误一般就是输入,输出矩阵,和 tf.matmul(weight, x) + bias 计算中矩阵不能相乘所造成的 matmul(weight, x)函数表示行数为weight,列数为x的矩阵 说白了就是矩阵相乘维度不一致导致,
四、educoderTensorFlow技术与平台应用答案
第1关:Hello,Tensorflow
import tensorflow as tf
c=tf.constant("Hello World")
sess=tf.Session()
print(sess.run(c))
第2关:计算图与会话
import tensorflow as tf
import numpy as np
def matmul(a,b):
'''
a(list):矩阵a
b(list):矩阵b
result(ndarray):矩阵相乘结果
'''
v1=tf.constant(a)
v2=tf.constant(b)
ndarray=tf.matmul(v1,v2)
with tf.Session() as sess:
result=sess.run(ndarray)
return result
|