2017-10-07 165 views
0

我正在用Pytorch試驗Autoencoder。當我使用比較大的神經網絡例如nn.Linear(250 * 250,40 * 40)作爲第一層時,Jupyter內核不斷崩潰。當我使用較小的圖層大小時線性(250 * 250,20 * 20)。 Jupyter內核是可以的。任何想法如何解決這個問題?所以我可以運行更大的網絡。謝謝。整個網絡如下。Jupyter內核崩潰/死亡時使用大型神經網絡層,任何想法?

# 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上運行docker ubuntu image/package。當我增加docker上的內存設置時,內存設置設置得太低。我的Ubuntu環境獲得更多的內存,那麼我可以更大的矩陣操作。