TensorFlow的三层bp神经网络代码
时间: 2023-10-03 17:05:58 浏览: 85
基于TensorFlow的深度学习、深度增强学习代码:NN(传统神经网络)、CNN(卷积神经网络)、RNN(递归神经网络)、LS
以下是使用 TensorFlow 实现的三层 BP 神经网络的代码示例:
```python
import tensorflow as tf
# 定义训练数据
x_train = [[0, 0], [0, 1], [1, 0], [1, 1]]
y_train = [[0], [1], [1], [0]]
# 定义输入和输出节点数
input_dim = 2
output_dim = 1
# 定义中间层节点数
hidden_dim = 2
# 定义输入和输出占位符
x = tf.placeholder(tf.float32, [None, input_dim])
y = tf.placeholder(tf.float32, [None, output_dim])
# 定义权重和偏置
w1 = tf.Variable(tf.random_normal([input_dim, hidden_dim]))
b1 = tf.Variable(tf.zeros([hidden_dim]))
w2 = tf.Variable(tf.random_normal([hidden_dim, output_dim]))
b2 = tf.Variable(tf.zeros([output_dim]))
# 定义前向传播过程
hidden_layer = tf.sigmoid(tf.matmul(x, w1) + b1)
output_layer = tf.sigmoid(tf.matmul(hidden_layer, w2) + b2)
# 定义损失函数
cross_entropy = -tf.reduce_sum(y * tf.log(output_layer) + (1 - y) * tf.log(1 - output_layer))
# 定义训练操作
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(cross_entropy)
# 初始化变量
init = tf.global_variables_initializer()
# 开始训练
with tf.Session() as sess:
sess.run(init)
for i in range(10000):
sess.run(train_step, feed_dict={x: x_train, y: y_train})
if i % 1000 == 0:
print('Epoch:', i)
print('Output:', sess.run(output_layer, feed_dict={x: x_train}))
```
上述代码实现了一个包含两个输入节点、两个隐藏节点和一个输出节点的三层神经网络,使用交叉熵作为损失函数,使用梯度下降算法进行训练。在训练过程中,我们将训练数据传入神经网络,并输出神经网络的输出值。
阅读全文