2017-10-07 25 views
0

私はPytorchでオートエンコーダーを試しています。最初の層としてnn.Linear(250 * 250,40 * 40)という比較的大きなニューラルネットワークを使用すると、Jupyterカーネルがクラッシュしているようです。私が小さい層のサイズを使用するとnn.Linear(250 * 250,20 * 20)。 JupyterカーネルはOKです。どのようにこれを修正するための任意のアイデア?だから私は大きなネットワークを走らせることができます。ありがとう。ネットワーク全体は以下の通りです。Jupyterカーネルのクラッシュ/死ぬときに大きなニューラルネットワーク層、任意のアイデアpls?

# model: 
class AutoEncoder(nn.Module): 
    def __init__(self): 
     super().__init__() 

     self.encoder = nn.Sequential(
      nn.Linear(250*250, 20*20), 
      nn.BatchNorm1d(20*20,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.LeakyReLU(), 
      nn.Linear(20*20, 20*20), 
      nn.BatchNorm1d(20*20,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.LeakyReLU(), 
      nn.Linear(20*20, 20*20), 
      nn.BatchNorm1d(20*20,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.LeakyReLU(), 
      nn.Linear(20*20, 15*15), 
      nn.BatchNorm1d(15*15,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.LeakyReLU(), 
      nn.Linear(15*15, 3), 
      nn.BatchNorm1d(3,momentum=0.5), 
      #nn.Dropout(0.5), 
      #nn.Tanh(), 
      #nn.Linear(5*5,5), 
     ) 
     self.decoder = nn.Sequential(
      #nn.Linear(5, 5*5), 
      #nn.BatchNorm1d(5*5,momentum=0.5), 
      #nn.Dropout(0.5), 
      #nn.Tanh(), 
      nn.Linear(3, 15*15), 
      nn.BatchNorm1d(15*15,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.LeakyReLU(), 
      nn.Linear(15*15, 20*20), 
      nn.BatchNorm1d(20*20,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.LeakyReLU(), 
      nn.Linear(20*20, 20*20), 
      nn.BatchNorm1d(20*20,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.LeakyReLU(), 
      nn.Linear(20*20, 250*250), 
      nn.BatchNorm1d(250*250,momentum=0.5), 
      nn.Dropout(0.5), 
      nn.Sigmoid(), 
     ) 
    def forward(self, x): 
     encoded = self.encoder(x) 
     decoded = self.decoder(encoded) 
     return encoded, decoded 

答えて

1

私は根本原因を発見しました。私はWindows上でドッカーのubuntuイメージ/パッケージを実行しています。ドッカーのメモリ設定を増やすと、メモリ設定が低く設定されています。私のubuntu環境はより多くのメモリを持っています。

関連する問題