我正在处理一些图像分类问题,因此我为其建立了Y Network。Y网络是一种神经网络,具有两个输入和一个输出。如果要拟合Tensorflow模型,则必须在model.fit()中输入x_train和y_train。像这样 -
model.fit([x_train, x_train], y_train, epochs=100, batch_size=64)
但是,如果我从ImageDataGenerator获得数据,如何获得x_train和y_train?像这样 -
train_generator = train_datagen.flow_from_dataframe(... , batch_size=64, ...)
我尝试通过此方法获取x_train和y_train:
x_train, y_train = train_generator.next()
但是结果x_train和y_train仅包含64张图像,我想要我所有的8644张图像。我无法将batch_size增加到8644,因为它将需要更多内存,并且Google Colab将崩溃。我应该怎么办 ?
您可以从获取所有图像和标签的列表
class_dict=train_generator.class_indices
labels= train_generator.labels
file_names= train_generator.filenames
类字典对于将类索引与类名称相关联非常有用,它的形式为{class name,index}我发现使用代码反转顺序以得到{index,class name}形式的字典很有用下面
for key,value in class_dict.items():
new_dict[value]=key
因此,当您进行预测并使用index = np.argmax(p)获得预测的索引时,您可以从中获取相应的类名
class_name=new_dict[index]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句