未验证 提交 b23d41ca 编写于 作者: L LielinJiang 提交者: GitHub

Add some hapi cn docs (#2588)

* add some hapi cn docs
上级 042ed3c9
.. _cn_api_paddle_callbacks_Callback:
Callback
-------------------------------
.. py:class:: paddle.callbacks.Callback()
``Callback`` 是一个基类,用于实现用户自定义的callback。
**代码示例**:
.. code-block:: python
import paddle
# build a simple model checkpoint callback
class ModelCheckpoint(paddle.callbacks.Callback):
def __init__(self, save_freq=1, save_dir=None):
self.save_freq = save_freq
self.save_dir = save_dir
def on_epoch_end(self, epoch, logs=None):
if self.model is not None and epoch % self.save_freq == 0:
path = '{}/{}'.format(self.save_dir, epoch)
print('save checkpoint at {}'.format(path))
self.model.save(path)
\ No newline at end of file
.. _cn_api_paddle_callbacks_ModelCheckpoint:
ModelCheckpoint
-------------------------------
.. py:class:: paddle.callbacks.ModelCheckpoint(save_freq=1, save_dir=None)
``ModelCheckpoint`` 是一个日志回调类。
参数:
- **save_freq** (int,可选) - 间隔多少个epoch保存模型。默认值:1
- **save_dir** (int,可选) - 保存模型的文件夹。如果不设定,将不会保存模型。默认值:None
**代码示例**
.. code-block:: python
import paddle
from paddle.static import InputSpec
inputs = [InputSpec([-1, 1, 28, 28], 'float32', 'image')]
labels = [InputSpec([None, 1], 'int64', 'label')]
train_dataset = paddle.vision.datasets.MNIST(mode='train')
model = paddle.Model(paddle.vision.LeNet(classifier_activation=None),
inputs, labels)
optim = paddle.optimizer.Adam(0.001)
model.prepare(optimizer=optim,
loss=paddle.nn.CrossEntropyLoss(),
metrics=paddle.metric.Accuracy())
callback = paddle.callbacks.ModelCheckpoint(save_dir='./temp')
model.fit(train_dataset, batch_size=64, callbacks=callback)
\ No newline at end of file
.. _cn_api_paddle_callbacks_ProgBarLogger:
ProgBarLogger
-------------------------------
.. py:class:: paddle.callbacks.ProgBarLogger(log_freq=1, verbose=2)
``ProgBarLogger`` 是一个日志回调类。
参数:
- **log_freq** (int,可选) - 损失值和指标打印的频率。默认值:1
- **verbose** (int,可选) - 打印信息的模式。设置为0时,不打印信息;设置为1时,使用进度条的形式打印信息;是指为2时,使用行的形式打印信息。默认值:2
**代码示例**
.. code-block:: python
import paddle
from paddle.static import InputSpec
inputs = [InputSpec([-1, 1, 28, 28], 'float32', 'image')]
labels = [InputSpec([None, 1], 'int64', 'label')]
train_dataset = paddle.vision.datasets.MNIST(mode='train')
model = paddle.Model(paddle.vision.LeNet(classifier_activation=None),
inputs, labels)
optim = paddle.optimizer.Adam(0.001)
model.prepare(optimizer=optim,
loss=paddle.nn.CrossEntropyLoss(),
metrics=paddle.metric.Accuracy())
callback = paddle.callbacks.ProgBarLogger(log_freq=10)
model.fit(train_dataset, batch_size=64, callbacks=callback)
\ No newline at end of file
.. _cn_api_paddle_summary:
summary
-------------------------------
.. py:function:: paddle.summary(net, input_size, batch_size=None, dtypes=None)
``summary`` 函数能够打印网络的基础结构和参数信息。
参数:
- **net** (Layer) - 网络实例,必须是 ``Layer`` 的子类。
- **input_size** (tuple|InputSpec|list[tuple|InputSpec) - 输入张量的大小。如果网络只有一个输入,那么该值需要设定为tuple或InputSpec。如果模型有多个输入。那么该值需要设定为list[tuple|InputSpec],包含每个输入的shape。
- **batch_size** (int,可选) - 输入张量的批大小。默认值:None。
- **dtypes** (str,可选) - 输入张量的数据类型,如果没有给定,默认使用 ``float32`` 类型。默认值:None。
返回:字典,包含了总的参数量和总的可训练的参数量。
**代码示例**:
.. code-block:: python
import paddle
import paddle.nn as nn
class LeNet(nn.Layer):
def __init__(self, num_classes=10):
super(LeNet, self).__init__()
self.num_classes = num_classes
self.features = nn.Sequential(
nn.Conv2d(
1, 6, 3, stride=1, padding=1),
nn.ReLU(),
nn.MaxPool2d(2, 2),
nn.Conv2d(
6, 16, 5, stride=1, padding=0),
nn.ReLU(),
nn.MaxPool2d(2, 2))
if num_classes > 0:
self.fc = nn.Sequential(
nn.Linear(400, 120),
nn.Linear(120, 84),
nn.Linear(
84, 10))
def forward(self, inputs):
x = self.features(inputs)
if self.num_classes > 0:
x = paddle.flatten(x, 1)
x = self.fc(x)
return x
lenet = LeNet()
params_info = paddle.summary(lenet, (1, 28, 28))
print(params_info)
.. _cn_api_paddle_utils_download_get_weights_path_from_url:
get_weights_path_from_url
-------------------------------
.. py:function:: paddle.utils.download.get_weights_path_from_url(url, md5sum=None)
从 ``WEIGHT_HOME`` 文件夹获取权重,如果不存在,就从url下载
参数:
- **url** (str) - 下载的链接。
- **md5sum** (str,可选) - 下载文件的md5值。默认值:None。
返回:权重的本地路径。
**代码示例**:
.. code-block:: python
from paddle.utils.download import get_weights_path_from_url
resnet18_pretrained_weight_url = 'https://paddle-hapi.bj.bcebos.com/models/resnet18.pdparams'
local_weight_path = get_weights_path_from_url(resnet18_pretrained_weight_url)
.. _cn_api_paddle_vision_datasets_DatasetFolder:
DatasetFolder
-------------------------------
.. py:class:: paddle.vision.datasets.DatasetFolder(root, loader=None, extensions=None, transform=None, is_valid_file=None)
一种通用的数据加载方式,当输入以如下的格式存放时:
root/class_a/1.ext
root/class_a/2.ext
root/class_a/3.ext
root/class_b/123.ext
root/class_b/456.ext
root/class_b/789.ext
参数:
- **root** (str) - 根目录路径。
- **loader** (callable,可选) - 可以加载数据路径的一个函数,如果该值没有设定,默认使用 ``cv2.imread`` 。默认值:None。
- **extensions** (tuple[str],可选) - 允许的数据后缀列表,如果该值没有设定,默认使用 ``('.jpg', '.jpeg', '.png', '.ppm', '.bmp', '.pgm', '.tif', '.tiff', '.webp')`` 。默认值:None。
- **transform** (callable,可选) - 数据增强函数。默认值:None。
- **is_valid_file** (callable,可选) - 根据每条数据的路径来判断是否合法的一个函数。默认值:None。
**代码示例**:
.. code-block:: python
import os
import cv2
import tempfile
import shutil
import numpy as np
from paddle.vision.datasets import DatasetFolder
def make_fake_dir():
data_dir = tempfile.mkdtemp()
for i in range(2):
sub_dir = os.path.join(data_dir, 'class_' + str(i))
if not os.path.exists(sub_dir):
os.makedirs(sub_dir)
for j in range(2):
fake_img = (np.random.random((32, 32, 3)) * 255).astype('uint8')
cv2.imwrite(os.path.join(sub_dir, str(j) + '.jpg'), fake_img)
return data_dir
temp_dir = make_fake_dir()
data_folder = DatasetFolder(temp_dir)
for items in data_folder:
break
shutil.rmtree(temp_dir)
.. _cn_api_paddle_vision_datasets_ImageFolder:
ImageFolder
-------------------------------
.. py:class:: paddle.vision.datasets.ImageFolder(root, loader=None, extensions=None, transform=None, is_valid_file=None)
一种通用的数据加载方式,当输入以如下的格式存放时:
root/1.ext
root/2.ext
root/sub_dir/3.ext
参数:
- **root** (str) - 根目录路径。
- **loader** (callable,可选) - 可以加载数据路径的一个函数,如果该值没有设定,默认使用 ``cv2.imread`` 。默认值:None。
- **extensions** (tuple[str],可选) - 允许的数据后缀列表,如果该值没有设定,默认使用 ``('.jpg', '.jpeg', '.png', '.ppm', '.bmp', '.pgm', '.tif', '.tiff', '.webp')`` 。默认值:None。
- **transform** (callable,可选) - 数据增强函数。默认值:None。
- **is_valid_file** (callable,可选) - 根据每条数据的路径来判断是否合法的一个函数。默认值:None。
**代码示例**:
.. code-block:: python
import os
import cv2
import tempfile
import shutil
import numpy as np
from paddle.vision.datasets import ImageFolder
def make_fake_dir():
data_dir = tempfile.mkdtemp()
for i in range(2):
sub_dir = os.path.join(data_dir, 'class_' + str(i))
if not os.path.exists(sub_dir):
os.makedirs(sub_dir)
for j in range(2):
fake_img = (np.random.random((32, 32, 3)) * 255).astype('uint8')
cv2.imwrite(os.path.join(sub_dir, str(j) + '.jpg'), fake_img)
return data_dir
temp_dir = make_fake_dir()
data_folder = ImageFolder(temp_dir)
for items in data_folder:
break
shutil.rmtree(temp_dir)
.. _cn_api_paddle_vision_models_LeNet:
LeNet
-------------------------------
.. py:class:: paddle.vision.models.LeNet(num_classes=10)
LeNet模型,来自论文`"LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.`_。
参数:
- **num_classes** (int,可选) - 最后一个全连接层输出的维度。默认值:10。
**代码示例**:
.. code-block:: python
import paddle
from paddle.vision.models import LeNet
model = LeNet()
x = paddle.rand([1, 1, 28, 28])
out = model(x)
print(out.shape)
\ No newline at end of file
.. _cn_api_paddle_vision_models_MobileNetV1:
MobileNetV1
-------------------------------
.. py:class:: paddle.vision.models.MobileNetV1(scale=1.0, num_classes=1000, with_pool=True)
MobileNetV1模型,来自论文`"MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications" <https://arxiv.org/abs/1704.04861>`_
参数:
- **scale** (float,可选) - 模型通道数的缩放比例。默认值:1.0
- **num_classes** (int, 可选) - 最后一个全连接层输出的维度。如果该值小于0,则不定义最后一个全连接层。默认值:1000
- **with_pool** (bool,可选) - 是否定义最后一个全连接层之前的池化层。默认值:True
返回:mobilenetv1模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import MobileNetV1
model = MobileNetV1()
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_MobileNetV2:
MobileNetV2
-------------------------------
.. py:class:: paddle.vision.models.MobileNetV2(scale=1.0, num_classes=1000, with_pool=True)
MobileNetV2模型,来自论文`"MobileNetV2: Inverted Residuals and Linear Bottlenecks" <https://arxiv.org/abs/1801.04381>`_
参数:
- **scale** (float,可选) - 模型通道数的缩放比例。默认值:1.0
- **num_classes** (int, 可选) - 最后一个全连接层输出的维度。如果该值小于0,则不定义最后一个全连接层。默认值:1000
- **with_pool** (bool,可选) - 是否定义最后一个全连接层之前的池化层。默认值:True
返回:mobilenetv2模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import MobileNetV2
model = MobileNetV2()
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_ResNet:
ResNet
-------------------------------
.. py:class:: paddle.vision.models.ResNet(Block, depth=50, num_classes=1000, with_pool=True)
ResNet模型,来自论文`"Deep Residual Learning for Image Recognition" <https://arxiv.org/pdf/1512.03385.pdf>`_。
参数:
- **Block** (BasicBlock|BottleneckBlock) - 模型的残差模块。
- **depth** (int,可选) - resnet模型的深度。默认值:50
- **num_classes** (int, 可选) - 最后一个全连接层输出的维度。如果该值小于0,则不定义最后一个全连接层。默认值:1000。
- **with_pool** (bool,可选) - 是否定义最后一个全连接层之前的池化层。默认值:True。
返回:ResNet模型,Layer的实例。
**代码示例**:
.. code-block:: python
import paddle
from paddle.vision.models import ResNet
from paddle.vision.models.resnet import BottleneckBlock, BasicBlock
resnet50 = ResNet(BottleneckBlock, 50)
resnet18 = ResNet(BasicBlock, 18)
x = paddle.rand([1, 3, 224, 224])
out = resnet18(x)
print(out.shape)
.. _cn_api_paddle_vision_models_VGG:
VGG
-------------------------------
.. py:class:: paddle.vision.models.VGG(features, num_classes=1000)
VGG模型,来自论文`"Very Deep Convolutional Networks For Large-Scale Image Recognition" <https://arxiv.org/pdf/1409.1556.pdf>`_。
参数:
- **features** (Layer) - vgg模型的特征层。由函数make_layers产生。
- **num_classes** (int, 可选) - 最后一个全连接层输出的维度。如果该值小于0,则不定义最后一个全连接层。默认值:1000。
返回:vgg模型,Layer的实例。
**代码示例**:
.. code-block:: python
import paddle
from paddle.vision.models import VGG
from paddle.vision.models.vgg import make_layers
vgg11_cfg = [64, 'M', 128, 'M', 256, 256, 'M', 512, 512, 'M', 512, 512, 'M']
features = make_layers(vgg11_cfg)
vgg11 = VGG(features)
x = paddle.rand([1, 3, 224, 224])
out = vgg11(x)
print(out.shape)
.. _cn_api_paddle_vision_models_mobilenet_v1:
mobilenet_v1
-------------------------------
.. py:function:: paddle.vision.models.mobilenet_v1(pretrained=False, scale=1.0, **kwargs)
MobileNetV1模型,来自论文`"MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications" <https://arxiv.org/abs/1704.04861>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
- **scale** (float,可选) - 模型通道数的缩放比例。默认值:1.0
返回:mobilenetv1模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import mobilenet_v1
# build model
model = mobilenet_v1()
# build model and load imagenet pretrained weight
# model = mobilenet_v1(pretrained=True)
# build mobilenet v1 with scale=0.5
model_scale = mobilenet_v1(scale=0.5)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_mobilenet_v2:
mobilenet_v2
-------------------------------
.. py:function:: paddle.vision.models.mobilenet_v2(pretrained=False, scale=1.0, **kwargs)
MobileNetV2模型,来自论文`"MobileNetV2: Inverted Residuals and Linear Bottlenecks" <https://arxiv.org/abs/1801.04381>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
- **scale** (float,可选) - 模型通道数的缩放比例。默认值:1.0
返回:mobilenetv2模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import mobilenet_v2
# build model
model = mobilenet_v2()
# build model and load imagenet pretrained weight
# model = mobilenet_v2(pretrained=True)
# build mobilenet v2 with scale=0.5
model = mobilenet_v2(scale=0.5)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_resnet101:
resnet101
-------------------------------
.. py:function:: paddle.vision.models.resnet101(pretrained=False, **kwargs)
101层的resnet模型,来自论文`"Deep Residual Learning for Image Recognition" <https://arxiv.org/pdf/1512.03385.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
返回:resnet101模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import resnet101
# build model
model = resnet101()
# build model and load imagenet pretrained weight
# model = resnet101(pretrained=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_resnet152:
resnet152
-------------------------------
.. py:function:: paddle.vision.models.resnet152(pretrained=False, **kwargs)
152层的resnet模型,来自论文`"Deep Residual Learning for Image Recognition" <https://arxiv.org/pdf/1512.03385.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
返回:resnet152模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import resnet152
# build model
model = resnet152()
# build model and load imagenet pretrained weight
# model = resnet152(pretrained=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_resnet18:
resnet18
-------------------------------
.. py:function:: paddle.vision.models.resnet18(pretrained=False, **kwargs)
18层的resnet模型,来自论文`"Deep Residual Learning for Image Recognition" <https://arxiv.org/pdf/1512.03385.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
返回:resnet18模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import resnet18
# build model
model = resnet18()
# build model and load imagenet pretrained weight
# model = resnet18(pretrained=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_resnet34:
resnet34
-------------------------------
.. py:function:: paddle.vision.models.resnet34(pretrained=False, **kwargs)
34层的resnet模型,来自论文`"Deep Residual Learning for Image Recognition" <https://arxiv.org/pdf/1512.03385.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
返回:resnet34模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import resnet34
# build model
model = resnet34()
# build model and load imagenet pretrained weight
# model = resnet34(pretrained=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_resnet50:
resnet50
-------------------------------
.. py:function:: paddle.vision.models.resnet50(pretrained=False, **kwargs)
50层的resnet模型,来自论文`"Deep Residual Learning for Image Recognition" <https://arxiv.org/pdf/1512.03385.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
返回:resnet50模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import resnet50
# build model
model = resnet50()
# build model and load imagenet pretrained weight
# model = resnet50(pretrained=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_vgg11:
vgg11
-------------------------------
.. py:function:: paddle.vision.models.vgg11(pretrained=False, batch_norm=False, **kwargs)
vgg11模型,来自论文`"Very Deep Convolutional Networks For Large-Scale Image Recognition" <https://arxiv.org/pdf/1409.1556.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
- **batch_norm** (bool, 可选) - 是否在每个卷积层后添加批归一化层。默认值:False
返回:vgg11模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import vgg11
# build model
model = vgg11()
# build vgg11 model with batch_norm
model = vgg11(batch_norm=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
\ No newline at end of file
.. _cn_api_paddle_vision_models_vgg13:
vgg13
-------------------------------
.. py:function:: paddle.vision.models.vgg13(pretrained=False, batch_norm=False, **kwargs)
vgg13模型,来自论文`"Very Deep Convolutional Networks For Large-Scale Image Recognition" <https://arxiv.org/pdf/1409.1556.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
- **batch_norm** (bool, 可选) - 是否在每个卷积层后添加批归一化层。默认值:False
返回:vgg13模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import vgg13
# build model
model = vgg13()
# build vgg13 model with batch_norm
model = vgg13(batch_norm=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_vgg16:
vgg16
-------------------------------
.. py:function:: paddle.vision.models.vgg16(pretrained=False, batch_norm=False, **kwargs)
vgg16模型,来自论文`"Very Deep Convolutional Networks For Large-Scale Image Recognition" <https://arxiv.org/pdf/1409.1556.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
- **batch_norm** (bool, 可选) - 是否在每个卷积层后添加批归一化层。默认值:False
返回:vgg16模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import vgg16
# build model
model = vgg16()
# build vgg16 model with batch_norm
model = vgg16(batch_norm=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
.. _cn_api_paddle_vision_models_vgg19:
vgg19
-------------------------------
.. py:function:: paddle.vision.models.vgg19(pretrained=False, batch_norm=False, **kwargs)
vgg19模型,来自论文`"Very Deep Convolutional Networks For Large-Scale Image Recognition" <https://arxiv.org/pdf/1409.1556.pdf>`_
参数:
- **pretrained** (bool,可选) - 是否加载在imagenet数据集上的预训练权重。默认值:False
- **batch_norm** (bool, 可选) - 是否在每个卷积层后添加批归一化层。默认值:False
返回:vgg19模型,Layer的实例。
**代码示例**
.. code-block:: python
import paddle
from paddle.vision.models import vgg19
# build model
model = vgg19()
# build vgg19 model with batch_norm
model = vgg19(batch_norm=True)
x = paddle.rand([1, 3, 224, 224])
out = model(x)
print(out.shape)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册