I’m getting the following error during testing of an InfoGAN network. I know it’s been asked many times but I got stuck.
I checked out my training script. Everything that’s supposed to be working on the GPU seems to be there.
Based on the above stacktrace, I’m thinking the problem is at my encoder structure. Although, I can’t spot the problem.
Since I think the encoder is the problem and the codebase is big, I’m only sharing the encoder part but if you spot additional issues based on the stacktrace, I would gladly share them.
Thanks in advance.
class Encoder(nn.Module): """ Encoder model that is used both in the Generator and Discriminator layers. """ def __init__( self, dimension_embedding = 64, dimension_hidden = 64, dimension_mlp = 1024, count_layer = 1, rate_dropout = 0.0 ): super(Encoder, self).__init__() self.dimension_mlp = 1024 # self.dimension_mlp = dimension_mlp self.dimension_hidden = dimension_hidden self.dimension_embedding = dimension_embedding self.count_layer = count_layer self.encoder = nn.LSTM( dimension_embedding, dimension_hidden, count_layer, dropout = rate_dropout ) self.spatial_embedding = nn.Linear(2, dimension_embedding) def _initialise_hidden(self, batch): """ Generates a tuple of tensors with zeros in it. Output: - a tuple of zero tensors """ return ( torch.zeros( self.count_layer, batch, self.dimension_hidden, device = EnvironmentTrain().device ), torch.zeros( self.count_layer, batch, self.dimension_hidden, device = EnvironmentTrain().device ) ) def forward(self, trajectory_observation): """ What the encoder does upon each move. Inputs: - trajectory_observed: Tensor of shape (length_observed, batch, 2) Output: - final_h: Tensor of shape (self.count_layer, batch, self.dimension_hidden) """ batch = trajectory_observation.size(1) trajectory_observation_embedding = self.spatial_embedding(trajectory_observation.reshape(-1, 2)) trajectory_observation_embedding = trajectory_observation_embedding.view( -1, batch, self.dimension_embedding ) state_tuple = self._initialise_hidden(batch) _, state = self.encoder(trajectory_observation_embedding, state_tuple) final_hidden = state return final_hidden