20 #1定义神经网络的输入、参数和输出,定义前向传播过程
21 x = tf.placeholder(tf.float32,shape=(None,2))
22 y_ = tf.placeholder(tf.float32,shape=(None,1))
23 w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
24 w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))
25
26 a = tf.matmul(x,w1)
27 y = tf.matmul(a,w2)
w1和w2是什么意思?有什么作用?
29 #2定义损失函数及反向传播方法
30 loss = tf.reduce_mean(tf.square(y-y_))
31 train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
这是定义损失函数和反向传播的方法
42 # 训练模型
43 STEPS = 3000
44 for i in range(STEPS):
45 start = (i*BATCH_SIZE) % 32
46 end = start + BATCH_SIZE
47 sess.run(train_step,feed_dict={x:X[start:end],y_: Y[start:end]})
48 if i % 500 == 0:
49 total_loss = sess.run(loss,feed_dict={x:X,y_:Y})
50 print("After %d training step,loss on all data is %g" %(i,total_ loss))
51
这里是用train_step的方法来训练x和y_这两个数组吗?
最后一个total_loss = sess.run(loss,feed_dict={x:X,y_:Y}),这里使用loss(均方误差)方法来训练x和y_数组吗?
望大神解答疑惑。