簡體   English   中英

如何使用pytorch在網絡模型內進行3D體積的中心裁切

[英]How can I do the centercrop of 3D volumes inside the network model with pytorch

kerasCropping3D層用於在神經網絡內部對3D卷的張量進行中心Cropping3D 但是,我無法在pytorch中找到任何類似的東西,盡管它們具有用於2D圖像的torchvision.transforms.CenterCrop(size)

如何在網絡內部進行裁剪? 否則,我需要在預處理中做這件事,由於特定原因,這是我要做的最后一件事。

我是否需要編寫自定義層,例如沿每個軸切片輸入張量? 希望對此有所啟發

在PyTorch中,您不一定需要為所有內容編寫圖層,通常您可以在前進過程中直接進行所需的操作。 在對火炬張量進行操作時需要記住的基本規則是:

  1. 不要將火炬張量轉換為其他類型進行計算(例如,使用torch.sum而不是轉換為numpy並使用numpy.sum )。
  2. 不要執行就地操作(例如,更改張量的一個元素或使用就地運算符,因此請使用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)
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM