예제 #1
0
 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
예제 #2
0
    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)
예제 #3
0
 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)