三层全连接层 tensorflow
时间: 2023-08-28 08:07:52 浏览: 71
以下是一个三层全连接层的 TensorFlow 实现示例代码:
```python
import tensorflow as tf
# 输入数据
x = tf.placeholder(tf.float32, shape=[None, 784])
# 第一层全连接层
W1 = tf.Variable(tf.truncated_normal([784, 256], stddev=0.1))
b1 = tf.Variable(tf.zeros([256]))
y1 = tf.nn.relu(tf.matmul(x, W1) + b1)
# 第二层全连接层
W2 = tf.Variable(tf.truncated_normal([256, 128], stddev=0.1))
b2 = tf.Variable(tf.zeros([128]))
y2 = tf.nn.relu(tf.matmul(y1, W2) + b2)
# 输出层
W3 = tf.Variable(tf.truncated_normal([128, 10], stddev=0.1))
b3 = tf.Variable(tf.zeros([10]))
y = tf.matmul(y2, W3) + b3
# 定义损失函数
y_ = tf.placeholder(tf.float32, shape=[None, 10])
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_))
# 定义优化器
train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)
# 定义正确率计算方法
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
```
以上代码定义了三个全连接层,并使用 ReLU 作为激活函数。其中,第一层全连接层的输入大小为 784,输出大小为 256;第二层全连接层的输入大小为 256,输出大小为 128;输出层的输入大小为 128,输出大小为 10(这里假设是一个手写数字识别任务,共有 10 个类别)。同时定义了损失函数、优化器和正确率计算方法。在训练时,可以通过不断地运行 `train_step` 操作来训练模型,同时计算训练集上的正确率和测试集上的正确率。
阅读全文