如何处理Pytorch测试用例的负填充输入

ocebsuys  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(192)

我正在尝试实现torch.nn.functional.pad mode =“replicate”,形状=(1,3,4,4),填充=(-1,1,-2,1)。

Check failed: lhs_padding >= 0 && lhs_padding <= dim_size - 1
Frames:
Info:
    @     0x7fd059fb4810  ef_log::FatalLog::~FatalLog()
    @     0x7fd0d881760c  torch_dtu::ShapeInference::InferReplicationPadBackwardOpShape()
    @     0x7fd0d853cf6f  torch_dtu::Node::replication_pad2d_backward()
    @     0x7fd0d84791c2  torch_dtu::XLANativeFunctions::replication_pad2d_backward()
    @     0x7fd0d8612dcd  c10::impl::wrap_kernel_functor_unboxed_<>::call()
    @     0x7fd13dbd4980  at::_ops::replication_pad2d_backward::redispatch()
    @     0x7fd13f44ec71  torch::autograd::VariableType::(anonymous namespace)::replication_pad2d_backward()
    @     0x7fd13f44f24c  c10::impl::wrap_kernel_functor_unboxed_<>::call()
    @     0x7fd13dc3e36e  at::_ops::replication_pad2d_backward::call()
    @     0x7fd13f1d889a  torch::autograd::generated::ReplicationPad2DBackward0::apply()
    @     0x7fd13f8baaf7  torch::autograd::Node::operator()()
    @     0x7fd13f8b5d5b  torch::autograd::Engine::evaluate_function()
    @     0x7fd13f8b6a8a  torch::autograd::Engine::thread_main()
    @     0x7fd13f8ae4a9  torch::autograd::Engine::thread_init()
    @     0x7fd153576a33  torch::autograd::python::PythonEngine::thread_init()
    @     0x7fd1546036df  +0xbd6de)
    @     0x7fd1579196db  start_thread
    @     0x7fd157c5261f  clone

有人能帮我解决这个负面填充问题吗?

enxuqcxy

enxuqcxy1#

此错误通知您所提供的填充值无效。
pad函数中,padding参数是四个整数的元组,表示要添加到输入Tensor每一侧的填充元素数。错误消息中提到的lhs_padding值是指Tensor左侧沿着第一维的填充。dim_size值是指输入Tensor第一维的大小。
在您的示例中,您为Tensor的左侧沿着第一个维提供了负填充值-1。这是不允许的,因为填充值必须为非负值,并且不得超过维的大小减1。
若要修复此错误,需要确保提供的填充值为非负值,并且不超过相应维度的大小减1。

相关问题