错误:形状必须相等,但等级必须为2和0。将形状0与其他形状合并

时间:2020-07-02 15:12:51

标签: python tensorflow

**嗨 尝试执行以下代码时,出现值错误。请更正我在哪里犯错**

 **Hyperparametres**

    nr_epochs = 10
    learning_rate = 1e-3 # optimizer
    n_hidden1 = 512
    n_hidden2 = 64
    
   **Defining the Weights & Biases** 
    
    with tf.name_scope('hidden_1'):
        initial_w1 = tf.truncated_normal(shape=[TOTAL_INPUTS, n_hidden1], 
        stddev=0.1,seed=42)
        w1 = tf.Variable(initial_value=initial_w1, name='w1')
    
        initial_b1 = tf.constant(value=0.0, shape=[n_hidden1])
        b1 = tf.Variable(initial_value=initial_b1, name='b1')
    
        layer1_in = tf.matmul(X, w1) + b1
    
        layer1_out = tf.nn.relu(layer1_in)
    
    
    ****Setting up the layers****
    
    def setup_layer(input, weight_dim, bias_dim, name):
            with tf.name_scope(name):
            initial_w = tf.truncated_normal(shape=weight_dim, stddev=0.1, seed=42)
            w = tf.Variable(initial_value=initial_w, name='W')
    
            initial_b = tf.constant(value=0.0, shape=bias_dim)
            b = tf.Variable(initial_value=initial_b, name='B')
    
            layer_in = tf.matmul(input, w) + b
            
            
            if name=='out':
                layer_out = tf.nn.softmax(layer_in)
            else:
                layer_out = tf.nn.relu(layer_in)
                
            tf.summary.histogram('weights', w)
            tf.summary.histogram('biases', b)
            
            return layer_out
    
    **Adding(Defining) Convolutional Neural Network**
    
    model =Sequential()
    model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(64, (3, 3), activation='relu'))
    
    model.add(Flatten())
    model.add(Dense(64, activation='relu'))
    model.add(Dense(10))
    
    
    model.summary()

型号:“ sequential_3” _________________________________________________________________ 图层(类型)输出形状参数#
================================================== =============== conv2d_7(Conv2D)(无,30、30、32)896
_________________________________________________________________ max_pooling2d_5(MaxPooling2(None,15,15,15,32)0
_________________________________________________________________ conv2d_8(Conv2D)(无,13、13、64)18496
_________________________________________________________________ max_pooling2d_6(MaxPooling2(None,6,6,64)0
_________________________________________________________________ conv2d_9(Conv2D)(无,4,4,4,64)36928
_________________________________________________________________ flatten_3(Flatten)(无,1024)0
_________________________________________________________________ density_5(Dense)(None,64)65600
_________________________________________________________________ density_6(Dense)(None,10)650
================================================== =============== 参数总计:122,570 可训练的参数:122,570 不可训练的参数:0

    **Setup Tensorflow Graph**
    
    X = tf.placeholder(tf.float32, shape=[None, TOTAL_INPUTS], name='X')
    Y = tf.placeholder(tf.float32, shape=[None, NR_CLASSES], name='labels')
    
    
    
    model.add(layer_1 = setup_layer(X, weight_dim=[output, n_hidden1], 
                          bias_dim=[n_hidden1], name='layer_1'))
    
    model.add(layer_drop = tf.nn.dropout(layer_1, keep_prob=0.8, name='dropout_layer'))
    
    model.add(layer_2 = setup_layer(layer_drop, weight_dim=[n_hidden1, n_hidden2], 
                          bias_dim=[n_hidden2], name='layer_2'))
    
    
    model.add(output = setup_layer(layer_2, weight_dim=[n_hidden2, NR_CLASSES], 
                          bias_dim=[NR_CLASSES], name='out'))
    
    model_name = f'{n_hidden1}-DO-{n_hidden2} LR{learning_rate} E{nr_epochs}'
    
    
    

ValueError:形状必须等于等级,但必须为2和0 将形状0与其他形状合并。对于输入形状为[?,10],[]的“ layer_1_3 /截断法线/形状”(操作:“包装”)。

0 个答案:

没有答案