百度云做.net网站,建设工程合同备案在什么网站上,外贸建站有什么用,萨隆wordpress全连接网络和全卷积网络不一样
以下是对两者的正确解释和代码示例#xff1a; 1. 全连接网络#xff08;Fully Connected Network#xff09;
全连接网络使用的是 线性层#xff08;nn.Linear#xff09;#xff0c;也就是我们常说的“全连接层”。它是用于将每一个输入…全连接网络和全卷积网络不一样
以下是对两者的正确解释和代码示例 1. 全连接网络Fully Connected Network
全连接网络使用的是 线性层nn.Linear也就是我们常说的“全连接层”。它是用于将每一个输入节点与输出节点直接连接的网络结构。
import torch
import torch.nn as nn
import torch.nn.functional as Fclass FullyConnectedNetwork(nn.Module):def __init__(self, input_size128, hidden_size64, output_size10):super(FullyConnectedNetwork, self).__init__()self.fc1 nn.Linear(input_size, hidden_size) # 全连接层1self.fc2 nn.Linear(hidden_size, hidden_size) # 全连接层2self.fc3 nn.Linear(hidden_size, output_size) # 全连接层3def forward(self, x):x F.relu(self.fc1(x)) # 激活函数x F.relu(self.fc2(x))x self.fc3(x) # 输出层return x# 测试
model FullyConnectedNetwork()
input_data torch.randn(32, 128) # 输入为 (batch_size, 输入特征维度)
output model(input_data)
print(output.shape) # 输出形状: (32, 10)这里的 nn.Linear 代表全连接层每个神经元都与下一层的每个神经元直接相连。 2. 全卷积网络Fully Convolutional Network
全卷积网络则使用的是 卷积层nn.Conv2d适用于图像或空间数据处理不使用 nn.Linear。卷积层的好处在于可以捕获空间结构特征同时能处理任意大小的输入。
以下是一个简单的全卷积网络示例
import torch
import torch.nn as nn
import torch.nn.functional as Fclass FullyConvolutionalNetwork(nn.Module):def __init__(self):super(FullyConvolutionalNetwork, self).__init__()self.conv1 nn.Conv2d(in_channels3, out_channels16, kernel_size3, padding1) # 卷积层1self.conv2 nn.Conv2d(in_channels16, out_channels32, kernel_size3, padding1) # 卷积层2self.conv3 nn.Conv2d(in_channels32, out_channels10, kernel_size3, padding1) # 卷积层3def forward(self, x):x F.relu(self.conv1(x)) # 激活函数x F.relu(self.conv2(x))x self.conv3(x) # 输出层return x# 测试
model FullyConvolutionalNetwork()
input_data torch.randn(32, 3, 64, 64) # 输入为 (batch_size, 通道数, 高, 宽)
output model(input_data)
print(output.shape) # 输出形状: (32, 10, 64, 64)在这里nn.Conv2d 代表卷积层它通过卷积操作提取空间特征适合处理图像类的输入数据。 总结
全连接网络使用 nn.Linear线性层适合用于固定大小的输入通常用于特征向量或结构化数据。全卷积网络使用 nn.Conv2d卷积层适合处理图像和空间数据可用于任意大小的输入。