Python 如何使用pytorch在网络模型内进行三维卷的中心裁剪
在Python 如何使用pytorch在网络模型内进行三维卷的中心裁剪,python,3d,conv-neural-network,pytorch,crop,Python,3d,Conv Neural Network,Pytorch,Crop,在keras中,神经网络中有croping3d层用于三维体积的中心裁剪张量。然而,我在pytorch中找不到任何类似的东西,尽管它们有用于2D图像的torchvision.transforms.CenterCrop(size) 如何在网络中进行裁剪?否则,我需要在预处理中完成它,这是出于特定原因我最不想做的事情 我是否需要编写一个自定义层,比如沿每个轴切片输入张量?希望能从PyTorch中获得一些灵感,你不必为每件事都写图层,通常你可以在向前传球时直接做你想做的事情。在计算火炬张量时,需要记住的
keras
中,神经网络中有croping3d
层用于三维体积的中心裁剪张量。然而,我在pytorch中找不到任何类似的东西,尽管它们有用于2D图像的torchvision.transforms.CenterCrop(size)
如何在网络中进行裁剪?否则,我需要在预处理中完成它,这是出于特定原因我最不想做的事情
我是否需要编写一个自定义层,比如沿每个轴切片输入张量?希望能从PyTorch中获得一些灵感,你不必为每件事都写图层,通常你可以在向前传球时直接做你想做的事情。在计算火炬张量时,需要记住的基本规则是
torch.sum
而不是转换为numpy并使用numpy.sum
)x=x+…
而不是x+=…
)def forward(self, x):
...
x = self.conv3(x)
x = x[:, :, 5:20, 5:20] # crop out part of the feature map
x = self.relu3(x)
...
谢谢我将测试tmr,然后接受答案。顺便说一句,我对pytorch中的
inplace
操作有点困惑。当我使用这个self.relu=nn.relu(inplace=True)
和self.dropout=nn.dropout(inpalce=True)
时会有问题吗,因为inplace
在这种情况下也会发生多次。这些都是在pytorch API中特别实现的,所以应该可以。api会尽其所能确保您不会陷入混乱,因此,如果运行中没有错误,那么您应该不会有问题。这将更详细地描述。