Pytorch:torch.nn.functional.pad()

torch.nn.functional.pad 是PyTorch函数,用于在张量的各个轴上添加填充 。这个函数是 torch.nn.functional 模块下的一个实用函数,它可以自由地添加不同数量的填充到输入张量的任意边界

用法

使用 torch.nn.functional.pad 需要提供输入张量一个填充值 列表,该列表指明了每个维度两侧的填充量 。此外,还可以指定填充类型,例如 'constant'(使用固定值进行填充)、'reflect'(使用反射填充方式)、'replicate'(使用重复模式填充)等。

以下是几个 pad 函数的例子:

python 复制代码
import torch
import torch.nn.functional as F

# 创建一个二维矩阵
tensor = torch.arange(9).view(3, 3)

# 将 tensor 周围填充一层零
# 填充格式为:(左, 右, 上, 下)
padded_tensor = F.pad(tensor, (1, 1, 1, 1), 'constant', 0)

# 使用反射方式填充
# 反射填充不需要额外的填充值,会将tensor边缘的值反射至填充部分
padded_tensor_reflect = F.pad(tensor, (1, 1, 1, 1), 'reflect')

# 使用重复模式填充
# 重复模式会取边缘的值并在填充区域重复它
padded_tensor_replicate = F.pad(tensor, (1, 1, 1, 1), 'replicate')

在实际应用中,填充操作通常用于确保某些卷积层或池化层后的尺寸满足要求,或者处理边界情况,比如图像处理中边界的处理等。

pad 函数的灵活性在于,它可以处理不同数量不同类型的填充需求,提供了实现各种填充策略的基础。

相关推荐
IT_陈寒1 小时前
Python开发者必知的5大性能陷阱:90%的人都踩过的坑!
前端·人工智能·后端
1G1 小时前
openclaw控制浏览器/自动化的playwright MCP + Mcporter方案实现
人工智能
踩着两条虫1 小时前
VTJ.PRO 双向代码转换原理揭秘
前端·vue.js·人工智能
扉川川1 小时前
OpenClaw 架构解析:一个生产级 AI Agent 是如何设计的
前端·人工智能
Flittly2 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(3)TodoWrite (待办写入)
python·agent
星浩AI2 小时前
让模型自己写 Skills——从素材到自动生成工作流
人工智能·后端·agent
千寻girling6 小时前
一份不可多得的 《 Django 》 零基础入门教程
后端·python·面试
千寻girling6 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
AI攻城狮6 小时前
OpenClaw 里 TAVILY_API_KEY 明明写在 ~/.bashrc,为什么还是失效?一次完整排查与修复
人工智能·云原生·aigc
stark张宇6 小时前
构建第一个AI聊天机器人:Flask+DeepSeek+Postgres实战
人工智能·postgresql·flask