gpt4 book ai didi

python - TypeError : Input 'filename' of 'ReadFile' Op has type float32 that does not match expected type of string

转载 作者:行者123 更新时间:2023-12-03 16:41:29 25 4
gpt4 key购买 nike

我正在此处的教程中运行此代码:https://keras.io/examples/vision/image_classification_from_scratch/

使用自定义数据集,如本教程所述,该数据集分为2个数据集。但是,我得到了这个错误:

TypeError: Input 'filename' of 'ReadFile' Op has type float32 that does not match expected type of string.

我做了这个 Actor 。我尝试了这个:
is_jfif = str(tf.compat.as_bytes("JFIF")) in fobj.peek(10)

但就错误而言,什么都没有改变
我整天试图找出解决方法,但没有成功。有人能帮我吗?谢谢...

最佳答案

我发现的最简单的方法是创建一个子文件夹并将文件复制到该子文件夹。
也就是说,假设您的文件分别是0.jpg,1.jpg,2.jpg .... 2000.jpg并位于名为“patterns”的目录中。
好像Keras API不接受它,因为文件是用数字命名的,而对于Keras,它在float32中。
要解决此问题,您可以按照一个答案的建议将文件重命名,也可以在“模式”(即“patterndir”)下简单地创建一个子文件夹。所以现在您的图像文件在...\patterns\patterndir下
Keras(内部)可能使用子目录名称,并且可能将其附加在图像文件的前面,从而使其成为字符串(诸如patterndir_01.jpg,patterndir_02.jpg之类)[注意,这是我的解释,并不意味着它是正确的]
这次编译时,您会看到它有效,并且会收到如下编译消息:

Found 2001 files belonging to 1 classes.
Using 1601 files for training.
Found 2001 files belonging to 1 classes.
Using 400 files for validation.
我的代码看起来像这样
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

#Generate a dataset

image_size = (28, 28)
batch_size = 32

train_ds = tf.keras.preprocessing.image_dataset_from_directory(
"patterns",
validation_split=0.2,
subset="training",
seed=1337,
image_size=image_size,
batch_size=batch_size,
)
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
"patterns",
validation_split=0.2,
subset="validation",
seed=1337,
image_size=image_size,
batch_size=batch_size,
)

关于python - TypeError : Input 'filename' of 'ReadFile' Op has type float32 that does not match expected type of string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62378481/

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