在优化器最小化中无法调用“张量”对象

时间:2019-10-24 07:54:02

标签: python tensorflow

使用tensorflow 2.0 代码在优化器最小化功能中有错误。 如何修改代码?


def cost(logits, labels):
    with tf.name_scope('loss'):
        cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=labels)
    cross_entropy_cost = tf.reduce_mean(cross_entropy)
    print(cross_entropy_cost)
    return cross_entropy_cost


test_image = tf.compat.v1.placeholder(float, [100, 32, 32, 3])
test_label = tf.compat.v1.placeholder(float, [100, 100])

cifar100 = Cifar100DataReader(cifar_folder="/cifar_100/cifar-100-python")
data, label = cifar100.next_train_data()
label_100 = np.argmax(label, 1)

network = ResNet()
output_label = network.Build(test_image, 1)

cross_entropy = cost(output_label, label_100)
opt = tf.keras.optimizers.SGD(0.0001, 0.9)
var = tf.compat.v1.trainable_variables()
train_step = opt.minimize(loss=cross_entropy, var_list=var)

line 32, in <module>
    train_step = opt.minimize(loss=cross_entropy, var_list=var)
line 317, in minimize
    loss, var_list=var_list, grad_loss=grad_loss)
in _compute_gradients
    loss_value = loss()
TypeError: 'Tensor' object is not callable

0 个答案:

没有答案