#include <torch/torch.h>
using namespace std;

// 卷积层参数设置
torch::nn::Conv2dOptions conv_options(int64_t in_planes, int64_t out_planes, int64_t kerner_size,
int64_t stride = 1, int64_t padding = 0, bool with_bias = false) {
torch::nn::Conv2dOptions conv_options = torch::nn::Conv2dOptions(in_planes, out_planes, kerner_size);
conv_options.stride(stride);
conv_options.padding(padding);
conv_options.bias(with_bias);
return conv_options;
}

// 卷积层
torch::nn::Conv2d conv{ nullptr };

int main()
{
// 1.定义输入数据
torch::Tensor rgb = torch::randn({ 1, 3, 6, 6 });
cout << rgb << endl;
cout << rgb.sizes() << endl;
// 2.定义卷积层
conv = torch::nn::Conv2d(conv_options(3, 2, 5));
cout << "*********************" << endl;
cout << "*********************" << endl;
cout << "*********************" << endl;
// 3.进行卷积
auto x = conv(rgb);
// 4.卷积结果输出
cout << x << endl;
cout << x.sizes() << endl;

system("pause");
return 0;
}

LibTorch之网络层中的卷积层_2d