来个bp神经网络TensorFlow代码
时间: 2023-09-21 20:03:29 浏览: 80
好的,以下是一个简单的 TensorFlow BP 神经网络代码:
```python
import tensorflow as tf
# 数据集
x_data = [[0,0],[0,1],[1,0],[1,1]]
y_data = [[0],[1],[1],[0]]
# 定义输入层、隐藏层、输出层的神经元数量
input_num = 2
hidden_num = 2
output_num = 1
# 定义输入、输出的占位符
x = tf.placeholder(tf.float32, shape=[None, input_num])
y = tf.placeholder(tf.float32, shape=[None, output_num])
# 定义权重和偏置项
W1 = tf.Variable(tf.random_normal([input_num, hidden_num]))
b1 = tf.Variable(tf.zeros([hidden_num]))
W2 = tf.Variable(tf.random_normal([hidden_num, output_num]))
b2 = tf.Variable(tf.zeros([output_num]))
# 定义前向传播过程
hidden = tf.nn.sigmoid(tf.matmul(x, W1) + b1)
y_pred = tf.nn.sigmoid(tf.matmul(hidden, W2) + b2)
# 定义损失函数和优化器
loss = tf.reduce_mean(tf.square(y_pred - y))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
# 初始化变量
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_data, y: y_data})
if i % 1000 == 0:
print('step %d, loss %g' % (i, sess.run(loss, feed_dict={x: x_data, y: y_data})))
# 预测
print(sess.run(y_pred, feed_dict={x: x_data}))
```
这是一个实现 XOR 逻辑运算的 BP 神经网络,包括输入层、隐藏层和输出层,使用 sigmoid 作为激活函数,使用均方误差作为损失函数,使用梯度下降优化器进行训练。
阅读全文