【问题标题】:Tensorflow 'NoneType' object has no attribute 'shape'Tensorflow 'NoneType' 对象没有属性 'shape'
【发布时间】:2019-12-02 09:38:45
【问题描述】:
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import os
import cv2
from tqdm import tqdm

DATADIR ="C:/Users/Park/Project/TrainingData"
CATEGORIES = ["doll", "machine", "puzzle"]

for category in CATEGORIES:
    path = os.path.join(DATADIR, category)
    for img in os.listdir(path):
        img_array = cv2.imread(os.path.join(path, img), cv2.IMREAD_COLOR)
        print(" Image shape : ", img_array.shape)
        plt.imshow(img_array)
        plt.show()

每个文件夹包含 50 个 jpg 格式的图像文件。输出到第二个'machine'文件夹,'puzzle'文件夹不输出到第三个文件夹。如果更改文件夹名称的顺序,则无论图像数量如何都会显示图像。当我尝试输出第三个文件夹时,我得到一个“NoneType”对象没有属性“形状”错误。

【问题讨论】:

  • 要调试,在读取图像后,检查:if img_array is None: print(img),然后尝试在文件资源管理器中找到确切的路径和文件,如果它不存在,你有你的错误。
  • 我应该把你提到的那句话放在哪里? *phrase = 如果 img_array 为无:print(img)
  • 用imread读取图片后
  • 我在执行以下操作时遇到同样的错误:img_array = cv2.imread(os.path.join(path, img), cv2.IMREAD_COLOR) 如果 img_array 为 None:print(img) print (" 图像形状 :", img_array.shape) plt.imshow(img_array) plt.show()

标签: python tensorflow operating-system cv2


【解决方案1】:

要快速解决问题,请添加

if img_array is None:
    print("imread failed on {}".format(img))

【讨论】:

  • 根据您的意见解决。非常感谢。原因是隐藏文件“Photothumb.db”。
猜你喜欢
  • 1970-01-01
  • 2020-06-20
  • 2020-11-07
  • 2017-03-26
  • 2018-09-07
  • 1970-01-01
  • 2021-12-31
  • 2022-11-26
  • 1970-01-01
相关资源
最近更新 更多