def __init__(self, q_size=10, encoding_size=128, timesteps=10, training=True, use_attention=False, grid_size=5): super(DRAW, self).__init__() self.training = training self.encoding_size = encoding_size self.q_size = q_size self.use_attention = use_attention self.timesteps = timesteps # use equal encoding and decoding size self.encoder_rnn = BasicRNN(hstate_size=self.encoding_size, output_size=self.encoding_size) self.decoder_rnn = BasicRNN(hstate_size=self.encoding_size, output_size=self.encoding_size) self.register_parameter('decoder_linear_weights', None) self.register_parameter('encoding_mu_weights', None) self.register_parameter('encoding_logvar_weights', None) self.filter_linear_layer = nn.Linear(self.encoding_size, 5) self.grid_size = grid_size self.minclamp = 1e-8 self.maxclamp = 1e8
def __init__(self, num_classes, inchans=3, att_encoding_size=128, timesteps=10, attn_grid_size=50): super(AttentionSegmenter, self).__init__() self.num_classes = num_classes self.att_encoding_size = att_encoding_size self.timesteps = timesteps self.attn_grid_size = attn_grid_size self.encoder = ConvolutionStack(inchans, final_relu=False, padding=0) self.encoder.append(32, 3, 1) self.encoder.append(32, 3, 2) self.encoder.append(64, 3, 1) self.encoder.append(64, 3, 2) self.encoder.append(96, 3, 1) self.encoder.append(96, 3, 2) self.decoder = TransposedConvolutionStack(96, final_relu=False, padding=0) self.decoder.append(96, 3, 2) self.decoder.append(64, 3, 1) self.decoder.append(64, 3, 2) self.decoder.append(32, 3, 1) self.decoder.append(32, 3, 2) self.decoder.append(self.num_classes, 3, 1) self.attn_reader = GaussianAttentionReader() self.attn_writer = GaussianAttentionWriter() self.att_rnn = BasicRNN(hstate_size=att_encoding_size, output_size=5) self.register_parameter('att_decoder_weights', None)
def __init__(self, q_size=10, encoding_size=128, timesteps=10, training=True, use_attention=False): super(DRAW, self).__init__() self.training = training self.encoding_size = encoding_size self.q_size = q_size self.use_attention = use_attention self.timesteps = timesteps # use equal encoding and decoding size self.encoder_rnn = BasicRNN(output_size=self.encoding_size) self.decoder_rnn = BasicRNN(output_size=self.encoding_size) self.register_parameter('decoder_linear_weights', None) self.register_parameter('encoding_mu_weights', None) self.register_parameter('encoding_logvar_weights', None)