A T*_*A T 4 python numpy marshalling keras keras-2
对于某些问题,验证数据不能是生成器,例如:TensorBoard直方图:
如果打印直方图,则必须提供validation_data,并且不能是生成器。
我当前的代码如下所示:
image_data_generator = ImageDataGenerator()
training_seq = image_data_generator.flow_from_directory(training_dir)
validation_seq = image_data_generator.flow_from_directory(validation_dir)
testing_seq = image_data_generator.flow_from_directory(testing_dir)
model = Sequential(..)
# ..
model.compile(..)
model.fit_generator(training_seq, validation_data=validation_seq, ..)
Run Code Online (Sandbox Code Playgroud)
validation_data=(x_test, y_test)?Python 2.7 和 Python 3.* 解决方案:
from platform import python_version_tuple
if python_version_tuple()[0] == '3':
xrange = range
izip = zip
imap = map
else:
from itertools import izip, imap
import numpy as np
# ..
# other code as in question
# ..
x, y = izip(*(validation_seq[i] for i in xrange(len(validation_seq))))
x_val, y_val = np.vstack(x), np.vstack(y)
Run Code Online (Sandbox Code Playgroud)
或者支持class_mode='binary',那么:
from keras.utils import to_categorical
x_val = np.vstack(x)
y_val = np.vstack(imap(to_categorical, y))[:,0] if class_mode == 'binary' else y
Run Code Online (Sandbox Code Playgroud)
完整的可运行代码:https://gist.github.com/AlecTaylor/7f6cc03ed6c3dd84548a039e2e0fd006
| 归档时间: |
|
| 查看次数: |
6322 次 |
| 最近记录: |