在C++中实现神经网络可以使用PyTorch C++ API。以下是一个简单的示例:
#include <torch/torch.h>
// 定义一个简单的神经网络模型
struct Net : torch::nn::Module {
Net() {
// 定义网络层
fc1 = register_module("fc1", torch::nn::Linear(784, 128));
fc2 = register_module("fc2", torch::nn::Linear(128, 10));
}
// 前向传播函数
torch::Tensor forward(torch::Tensor x) {
x = torch::relu(fc1(x));
x = fc2(x);
return x;
}
// 定义网络层
torch::nn::Linear fc1{nullptr}, fc2{nullptr};
};
int main() {
// 创建神经网络模型
Net model;
// 创建输入数据
torch::Tensor input = torch::randn({1, 784});
// 前向传播
torch::Tensor output = model.forward(input);
// 打印输出
std::cout << output << std::endl;
return 0;
}
在这个示例中,首先定义了一个简单的神经网络模型Net
,模型包含两个全连接层。然后在主函数中创建了模型实例,定义了输入数据,进行前向传播并打印输出。
需要注意的是,为了使用PyTorch C++ API,你需要在编译时链接PyTorch C++库,并且安装正确的依赖项。更多关于PyTorch C++ API的信息可以参考PyTorch官方文档。