如何简化CH4模型以适应?
摘要:掌握标量、向量、张量等概念 掌握如何用向量形式简化神经网络结构并编程实现 了解线性问题 标量、向量、张量 张量 在上一章的代码中添加 print 函数: 代码 # import tensorflow as tf import tensorf
掌握标量、向量、张量等概念
掌握如何用向量形式简化神经网络结构并编程实现
了解线性问题
标量、向量、张量
张量
在上一章的代码中添加 print 函数:
代码
# import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
x1 = tf.placeholder(dtype = tf.float32)
x2 = tf.placeholder(dtype = tf.float32)
x3 = tf.placeholder(dtype = tf.float32)
yTrain = tf.placeholder(dtype = tf.float32)
print("x1: %s" %x1)
w1 = tf.Variable(0.1, dtype = tf.float32)
w2 = tf.Variable(0.1, dtype = tf.float32)
w3 = tf.Variable(0.1, dtype = tf.float32)
print("w1: %s" %w1)
n1 = x1 * w1
n2 = x2 * w2
n3 = x3 * w3
print("n1: %s" %n1)
y = n1 + n2 + n3
print("y: %s" %y)
loss = tf.abs(y - yTrain)
optimizer = tf.train.RMSPropOptimizer(0.001)
train = optimizer.minimize(loss)
sess = tf.Session()
# init = tf.global_variable_initializer()
init = tf.compat.v1.global_variables_initializer()
sess.run(init)
result = sess.run([train, x1, x2, x3, w1, w2, w3, y, yTrain], feed_dict={x1: 90, x2: 80, x3: 70, yTrain: 96})
print(result)
输出结果:
Placeholder:0 数字代表操作结果的编号(可能有多个输出结果)。x1 是 Tensor 对象。神经网络中,输入节点,隐藏层节点,输出节点都是张量。w1 是 Variable 对象(可变参数对象)。在神经网络中,参与节点运算的可变参数(权重)不是 Tensor 对象。
上一章引入的 “三好学生问题” 神经网络模型:
n1 = x1 * w1
# n1: Tensor("mul:0", dtype=float32)
Tensor(张量):包含 了对于输入数据的计算操作;容纳了一个(或一组)数据,即输出数据。
w1 = tf.Variable(0.1, dtype = tf.float32)
# w1: <tf.Variable 'Variable:0' shape=() dtype=float32_ref>
可变参数不是模型中节点的输出数据,会参与到某个神经元的计算。
总结:
张量( Tensor)就是神经网络中神经元节点接收输入数据后经过一定计算操作输出的结果对象;
张量( Tensor)在神经网络模型图中表现为各层的节点的输出节点加上连线所组成的整个神经网络模型图标表现的是张量在神经网络中 “流动(flow)” 的过程;
张量( Tensor)在程序中的具体表现是一个 Tensor 类型的对象。
