在使用 tf.keras.preprocessing.text_dataset_from_directory 读取样本数据时报错如下:
TypeError: Input 'filename' of 'ReadFile' Op has type float32 that does not match expected type of string.
这个问题是样本数据存储结构不符合API输入规范导致的,正确的结构如下(摘自API官方示例):
main_directory/
...class_a/
......a_text_1.txt
......a_text_2.txt
...class_b/
......b_text_1.txt
......b_text_2.txt
其中传入接口的路径为main_directory
,class_a
和 class_b
是子目录,代表分类,每个分类下有多个文件,每个文件包含一个样本。
这里注意,每个分类下,一个文件包含一个样本,我就是因为把样本都放到一个文件中,导致不符合API输入规范,引发错误。
这是我经过对比官方示例样本数据格式,发现的差异,调整样本存储结构后,可以正常读取数据了。