【问题标题】:tf.Estimator.train throws as_list() is not defined on an unknown TensorShapetf.Estimator.train throws as_list() is not defined on an unknown TensorShape
【发布时间】:2018-01-07 11:47:55
【问题描述】:

我创建了一个自定义 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.
    

【问题讨论】:

  • 你是怎么解决的?

标签: python tensorflow deep-learning keras


【解决方案1】:

我遇到了同样的问题。 在 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来设置形状

【讨论】:

猜你喜欢
  • 2020-02-24
  • 1970-01-01
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2016-05-24
  • 2012-09-30
相关资源
最近更新 更多