我正在尝试使用 Alexnet 的 tensorflow.contrib.slim 实现来解决图像分类问题。如果我尝试在没有以下代码行的情况下创建图形,则图形已成功创建。
有效预测= tf.nn.softmax(模型(tf_validation_dataset))
但是当我将此行添加到代码中时,出现以下错误
ValueError: 变量 alexnet_v2/conv1/weights 已经存在,不允许。您的意思是在 VarScope 中设置 reuse=True 或 reuse=tf.AUTO_REUSE 吗?
我也希望在一定次数的迭代后测试和验证数据的损失和准确性。我的完整代码如下
with graph.as_default():
tf_train_dataset = tf.placeholder(tf.float32, shape=(batchsize, height, width,channels))
tf_train_labels = tf.placeholder(tf.float32, shape=(batchsize, num_labels))
tf_validation_dataset = tf.constant(valid_dataset)
tf_test_dataset = tf.constant(test_dataset)
def model(data):
with slim.arg_scope(alexnet.alexnet_v2_arg_scope()):
outputs, end_points = alexnet.alexnet_v2(data,num_classes=num_labels)
return outputs
logits = model(tf_train_dataset)
#calculate loss
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=tf_train_labels, logits=logits))
#optimization Step
optimizer = tf.train.AdamOptimizer(1e-4).minimize(loss)
#predictions for each dataset
train_predicitions = tf.nn.softmax(logits)
valid_predicitions = tf.nn.softmax(model(tf_validation_dataset))