定义3层全连接神经网络模型
时间: 2023-07-25 19:13:26 浏览: 191
好的,以下是定义一个包含三层全连接神经网络的模型的代码示例:
```python
import tensorflow as tf
# 定义输入占位符
input_placeholder = tf.placeholder(tf.float32, shape=[None, 784])
# 定义第一层隐藏层
hidden_layer1 = tf.layers.dense(inputs=input_placeholder, units=256, activation=tf.nn.relu)
# 定义第二层隐藏层
hidden_layer2 = tf.layers.dense(inputs=hidden_layer1, units=128, activation=tf.nn.relu)
# 定义输出层
output_layer = tf.layers.dense(inputs=hidden_layer2, units=10, activation=None)
# 定义输出层的概率分布
output_prob = tf.nn.softmax(output_layer)
# 定义输出占位符
output_placeholder = tf.placeholder(tf.float32, shape=[None, 10])
# 定义交叉熵损失函数
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=output_placeholder, logits=output_layer))
# 定义Adam优化器
optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(cross_entropy)
# 定义准确率指标
correct_prediction = tf.equal(tf.argmax(output_prob, 1), tf.argmax(output_placeholder, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
```
以上代码定义了一个包含三层全连接神经网络的模型,其中第一层和第二层分别有 256 个和 128 个神经元,输出层有 10 个神经元。激活函数使用的是 ReLU。优化器使用的是 Adam,学习率为 0.001。损失函数使用 softmax 交叉熵。准确率指标使用的是分类准确率。
阅读全文