我的环境是ubuntu 16.04, keras 2.1.5,然后在运行vgg代码的时候,出现了如下的错误:
Traceback (most recent call last):
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/utils/data_utils.py", line 578, in get
inputs = self.queue.get(block=True).get()
File "/home/eric/anaconda3/lib/python3.6/multiprocessing/pool.py", line 644, in get
raise self._value
File "/home/eric/anaconda3/lib/python3.6/multiprocessing/pool.py", line 119, in worker
result = (True, func(*args, **kwds))
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/utils/data_utils.py", line 401, in get_index
return _SHARED_SEQUENCES[uid][i]
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/preprocessing/image.py", line 825, in __getitem__
return self._get_batches_of_transformed_samples(index_array)
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/preprocessing/image.py", line 1233, in _get_batches_of_transformed_samples
img = self.image_data_generator.preprocessing_function(img)
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/applications/imagenet_utils.py", line 178, in preprocess_input
mode=mode)
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/applications/imagenet_utils.py", line 132, in _preprocess_symbolic_input
x = x[..., ::-1]
TypeError: 'PngImageFile' object is not subscriptable
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "vgg16_finetune.py", line 340, in <module>
callbacks=[tbCallBack,csvlog,checkpointer])
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/engine/training.py", line 2192, in fit_generator
generator_output = next(output_generator)
File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/utils/data_utils.py", line 584, in get
six.raise_from(StopIteration(e), e)
File "<string>", line 3, in raise_from
StopIteration: 'PngImageFile' object is not subscriptabl
解决方法
查资料发现这是keras 2.1.5的bug,我的做法是回滚:
pip install keras==2.1.4
参考文献
[1].新版Keras版本2.1.5不兼容.https://zhuanlan.zhihu.com/p/35146669