**嗨 尝试执行以下代码时,出现值错误。请更正我在哪里犯错**
**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 /截断法线/形状”(操作:“包装”)。