这是我第一次尝试使用CNN做某事,因此我可能做的很愚蠢-但无法弄清楚我错了...
该模型似乎学习得很好,但是验证准确性并没有提高(甚至-在第一个时期之后),并且验证损失实际上随着时间而增加。看起来我不太适合(1个时期后?)-我们必须以其他方式关闭。
我正在训练一个CNN网络-我有约100k种各种植物(1000个类)的图像,并想对ResNet50进行微调以创建一个多类分类器。图片大小各异,我像这样加载它们:
fromkeras.preprocessingimportimagedefpath_to_tensor(img_path):# loads RGB image as PIL.Image.Image typeimg=image.load_img(img_path,target_size=(IMG_HEIGHT,IMG_HEIGHT))# convert PIL.Image.Image type to 3D tensor with shape (IMG_HEIGHT, IMG_HEIGHT, 3)x=image.img_to_array(img)# convert 3D tensor to 4D tensor with shape (1, IMG_HEIGHT, IMG_HEIGHT, 3) and return 4D tensorreturnnp.expand_dims(x,axis=0)defpaths_to_tensor(img_paths):list_of_tensors=[path_to_tensor(img_path)forimg_pathinimg_paths]#can use tqdm(img_paths) for datareturnnp.vstack(list_of_tensors)enter code here
数据库很大(不适合内存),必须创建自己的生成器才能提供从磁盘读取和扩充的功能。(我知道Keras具有.flow_from_directory()-但