<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def build_alexnet_weights(self):
 """ Build a set of convnet weights for AlexNet """

        net_data = self._net_data
        #conv1
        #conv(11, 11, 96, 4, 4, padding='VALID', name='conv1')
        k_h = 11; k_w = 11; c_o = 96; s_h = 4; s_w = 4
        conv1W = tf.Variable(net_data["conv1"][0])
        conv1b = tf.Variable(net_data["conv1"][1])
  
        #conv2
        #conv(5, 5, 256, 1, 1, group=2, name='conv2')
        k_h = 5; k_w = 5; c_o = 256; s_h = 1; s_w = 1; group = 2
        conv2W = tf.Variable(net_data["conv2"][0])
        conv2b = tf.Variable(net_data["conv2"][1])
        
        #conv3
        #conv(3, 3, 384, 1, 1, name='conv3')
        k_h = 3; k_w = 3; c_o = 384; s_h = 1; s_w = 1; group = 1
        conv3W = tf.Variable(net_data["conv3"][0])
        conv3b = tf.Variable(net_data["conv3"][1])
        
        #conv4
        #conv(3, 3, 384, 1, 1, group=2, name='conv4')
        k_h = 3; k_w = 3; c_o = 384; s_h = 1; s_w = 1; group = 2
        conv4W = tf.Variable(net_data["conv4"][0])
        conv4b = tf.Variable(net_data["conv4"][1])
        
        #conv5
        #conv(3, 3, 256, 1, 1, group=2, name='conv5')
        k_h = 3; k_w = 3; c_o = 256; s_h = 1; s_w = 1; group = 2
        conv5W = tf.Variable(net_data["conv5"][0])
        conv5b = tf.Variable(net_data["conv5"][1])
    
        #fc6
        #fc(4096, name='fc6')
        fc6_in_size = net_data["fc6"][0].shape[0]
        fc6_out_size = net_data["fc6"][0].shape[1]
        fc6W = tf.Variable(net_data["fc6"][0])
        fc6b = tf.Variable(net_data["fc6"][1])

        #fc7
        #fc(4096, name='fc7') 
        fc7_in_size = fc6_out_size
        fc7_out_size = net_data["fc7"][0].shape[1]
        fc7W = tf.Variable(net_data["fc7"][0])
        fc7b = tf.Variable(net_data["fc7"][1])
    
        #fc8
        #fc(num_cats, relu=False, name='fc8')                       
        fc8_in_size = fc7_out_size
        fc8_out_size = self._out_size
        fc8W = tf.Variable(tf.truncated_normal([fc8_in_size, fc8_out_size],
                                               stddev=0.01,
                                               seed=None))
        fc8b = tf.Variable(tf.constant(0.0, shape=[fc8_out_size]))
  
        # make return object
        weights = AlexNetWeights()
        weights.conv1W = conv1W
        weights.conv1b = conv1b
        weights.conv2W = conv2W
        weights.conv2b = conv2b
        weights.conv3W = conv3W
        weights.conv3b = conv3b 
        weights.conv4W = conv4W
        weights.conv4b = conv4b 
        weights.conv5W = conv5W
        weights.conv5b = conv5b 
        weights.fc6W = fc6W
        weights.fc6b = fc6b
        weights.fc7W = fc7W
        weights.fc7b = fc7b
        weights.fc8W = fc8W
        weights.fc8b = fc8b
        return weights