gpt4 book ai didi

python - tf.Estimator.train 抛出 as_list() 未在未知 TensorShape 上定义

转载 作者:太空宇宙 更新时间:2023-11-04 04:51:46 31 4
gpt4 key购买 nike

我创建了一个自定义的 input_func 并将一个 keras 模型转换为 tf.Estimator 用于训练。但是,它一直在抛出错误。

  • 这是我的模型摘要。我试图用 batch_shape=(16, 320, 320, 3) 设置 Input 层进行测试,但问题仍然存在

    inputs  = Input(batch_shape=(16, 320, 320, 3), name='input_images')
    outputs = yolov2.predict(intputs)
    model = Model(inputs, outputs)

    model.compile(optimizer= tf.keras.optimizers.Adam(lr=learning_rate),
    loss = compute_loss)
  • 我使用 tf.keras.estimator.model_to_estimator 进行转换。我还创建了一个用于训练的 input_fn:

    def input_fun(images, labels, batch_size, shuffle=True):
    dataset = create_tfdataset(images, labels)
    dataset = dataset.shuffle().batch(batch_size)
    iterator = dataset.make_one_shot_iterator()
    images, labels = iterator.next()

    return {'input_images': images}, labels

    estimator = tf.keras.estimator.model_to_estimator(keras_model=model)
    estimator.train(input_fn = lambda: input_fn(images, labels, 32),
    max_steps = 1000)
  • 它抛出这个错误

    input_tensor = Input(tensor=x, name='input_wrapper_for_' + name)
    ...
    File "/home/dat/anaconda3/envs/webapp/lib/python2.7/site-packages/tensorflow/python/layers/base.py", line 1309, in __init__
    self._batch_input_shape = tuple(input_tensor.get_shape().as_list())

    "as_list() is not defined on an unknown TensorShape.")
    ValueError: as_list() is not defined on an unknown TensorShape.

最佳答案

我遇到了同样的问题。在 input_fun 中,如果您查看“return {'input_images': images}, labels”行中的图像,您会发现张量没有形状。您必须为每个图像调用 set_shape。看https://github.com/tensorflow/models/blob/master/official/resnet/imagenet_main.py , 他们调用 vgg_preprocessing.preprocess_image 来设置形状

关于python - tf.Estimator.train 抛出 as_list() 未在未知 TensorShape 上定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48136804/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com