文件夹用中文命名,tensorflow读取文件夹中的图片, 报错AttributeError: 'NoneType' object has no attribute 'shape'
时间: 2023-06-22 15:25:19 浏览: 168
这个错误通常是由于文件夹名称不正确或文件夹路径错误导致的。如果你的文件夹使用中文命名,那么需要确保文件夹名称编码格式正确,否则会导致文件夹读取失败。另外,确保你的文件夹路径是正确的,可以通过打印路径来检查路径是否正确。
在使用tensorflow读取文件夹中的图片时,可以使用tf.keras.preprocessing.image_dataset_from_directory()函数来获取文件夹中的所有图片,并将它们打包成一个tf.data.Dataset对象。这个函数可以接受一个文件夹路径和一些其他的参数,例如图片大小、批次大小等。
下面是一个示例代码,可以帮助你读取中文命名的文件夹中的图片:
``` python
import tensorflow as tf
# 定义文件夹路径
folder_path = "中文文件夹名"
# 定义图片大小和批次大小
img_size = (224, 224)
batch_size = 32
# 读取文件夹中的图片
image_dataset = tf.keras.preprocessing.image_dataset_from_directory(
folder_path,
image_size=img_size,
batch_size=batch_size)
# 打印图片数据集类别标签
class_names = image_dataset.class_names
print(class_names)
# 显示一个批次的图片
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 10))
for images, labels in image_dataset.take(1):
for i in range(9):
ax = plt.subplot(3, 3, i + 1)
plt.imshow(images[i].numpy().astype("uint8"))
plt.title(class_names[labels[i]])
plt.axis("off")
```
在这个示例代码中,我们使用了tf.keras.preprocessing.image_dataset_from_directory()函数来读取文件夹中的所有图片,并将它们打包成一个tf.data.Dataset对象。然后,我们打印了图片数据集的类别标签,并显示了一个批次的图片以检查文件是否被正确读取。
阅读全文
相关推荐


















