AttributeError: 'list' object has no attribute 'map' . How to resolve this error?

AttributeError: 'list' object has no attribute 'map' . How to resolve this error?

train_horses = train_horses.map(
    preprocess_image_train, num_parallel_calls=AUTOTUNE).cache().shuffle(
    BUFFER_SIZE).batch(1)

train_zebras = train_zebras.map(
    preprocess_image_train, num_parallel_calls=AUTOTUNE).cache().shuffle(
    BUFFER_SIZE).batch(1)

test_horses = test_horses.map(
    preprocess_image_test, num_parallel_calls=AUTOTUNE).cache().shuffle(
    BUFFER_SIZE).batch(1)

test_zebras = test_zebras.map(
    preprocess_image_test, num_parallel_calls=AUTOTUNE).cache().shuffle(
    BUFFER_SIZE).batch(1)

这段代码有什么错误,显示的是属性错误,我无法解决。

错误是:

AttributeError                            Traceback (most recent call last)
<ipython-input-15-00c14af042b9> in <module>()
----> 1 train_horses = train_horses.map(
      2     preprocess_image_train, num_parallel_calls=AUTOTUNE).cache().shuffle(
      3     BUFFER_SIZE).batch(1)
      4 
      5 train_zebras = train_zebras.map(

AttributeError: 'list' 对象没有属性 'map'

LINK 到 COLABhttps://colab.research.google.com/drive/1rlgjFnhPGJTjUv368imG9q1VEGQZ0N13?usp=sharing

错误信息完全正确。列表没有 map 属性。有两种可能性。 train_horses 应该是不同的类型(也许是 numpy 数组?)或者您打算使用独立的映射函数:

test_horses = map( test_horses, 
    preprocess_image_train, num_parallel_calls=AUTOTUNE).cache().shuffle(
    BUFFER_SIZE).batch(1)

您尝试在输出中调用 cacheshufflebatch 的事实强烈表明问题出在前者,因为 map结果没有这些属性。 test_horses 应该是其他类型的对象。您没有向我们展示您是如何创建它的,因此我们无法提供更多帮助。

跟进

num_parallel_calls 是一个 TensorFlow 张量属性。所以,显然你打算把 test_horses 变成张量,但你忘了这样做。