如何把imagenet預訓練的模型,輸入層的通道數隨心所欲的修改,從而來適應自己的任務
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#增加一個通道 w = layers[ 0 ].weight layers[ 0 ] = nn.Conv2d( 4 , 64 , kernel_size = ( 7 , 7 ), stride = ( 2 , 2 ), padding = ( 3 , 3 ), bias = False ) layers[ 0 ].weight = torch.nn.Parameter(torch.cat((w, w[:, : 1 , :, :]), dim = 1 )) #方式2 w = layers[ 0 ].weight layers[ 0 ] = nn.Conv2d( 4 , 64 , kernel_size = ( 7 , 7 ), stride = ( 2 , 2 ), padding = ( 3 , 3 ), bias = False ) layers[ 0 ].weight = torch.nn.Parameter(torch.cat((w, torch.zeros( 64 , 1 , 7 , 7 )), dim = 1 )) #單通道輸入 layers[ 0 ] = nn.Conv2d( 1 , 64 , kernel_size = ( 7 , 7 ), stride = ( 2 , 2 ), padding = ( 3 , 3 ), bias = False ) layers[ 0 ].weight = torch.nn.Parameter(w[:, : 1 , :, :]) |
以上這篇pytorch 實現在預訓練模型的 input上增減通道就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/github_36923418/article/details/84567227