PaddlePaddle与 pytorch比较
1.环境安装
Looking in indexes: https://mirror.baidu.com/pypi/simple
Collecting opencv-python
Using cached https://mirror.baidu.com/pypi/packages/01/9b/be08992293fb21faf35ab98e06924d7407fcfca89d89c5de65442631556a/opencv-python-4.5.3.56.tar.gz
Installing build dependencies ... [?25ldone
[?25hRequirement already satisfied: numpy>=1.19.3 in /opt/conda/lib/python3.9/site-packages (from opencv-python) (1.20.3)
Building wheels for collected packages: opencv-python
Running setup.py bdist_wheel for opencv-python ... [?25l|^C
[?25canceled
2.包引入
import os
import sys
import numpy as np
import torch
import torchvision
import paddle
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
print(paddle.__version__)
print(torch.__version__)
2.1.2
1.8.1
3.卷积比较
conv_paddle = paddle.nn.Conv2D(
in_channels=3,
out_channels=4,
kernel_size=1,
stride=1)
conv_torch = paddle.nn.Conv2D(
in_channels=3,
out_channels=4,
kernel_size=1,
stride=1)
print(conv_paddle)
print(conv_torch)
Conv2D(3, 4, kernel_size=[1, 1], data_format=NCHW)
Conv2D(3, 4, kernel_size=[1, 1], data_format=NCHW)
4.线性网络比较
linear_paddle = paddle.nn.Linear(
in_features=10,
out_features=20)
linear_torch = torch.nn.Linear(
in_features=10,
out_features=20)
print(linear_paddle)
print(linear_torch)
paddlepaddle和pytorch的Linear输出顺序不一样
print("====linear_paddle info====")
for name, weight in linear_paddle.named_parameters():
print(name, weight.shape)
print("\n====linear_torch info====")
for name, weight in linear_torch.named_parameters():
print(name, weight.shape)
Linear(in_features=10, out_features=20, dtype=float32)
Linear(in_features=10, out_features=20, bias=True)
====linear_paddle info====
weight [10, 20]
bias [20]
====linear_torch info====
weight torch.Size([20, 10])
bias torch.Size([20])
5.cifar10数据下载
dataset_paddle = paddle.vision.datasets.Cifar10(
mode="train",
download=True)
print(dataset_paddle)
<paddle.vision.datasets.cifar.Cifar10 object at 0x7fc3