我想让我的Keras
模型使用OpenCV或类似工具来调整输入图像的大小。
我已经看到过使用ImageGenerator
的方法,但我更希望自己编写生成器,并在第一层中使用keras.layers.core.Lambda
简单地调整图像的大小。
我应该怎么做?
我想让我的Keras
模型使用OpenCV或类似工具来调整输入图像的大小。
我已经看到过使用ImageGenerator
的方法,但我更希望自己编写生成器,并在第一层中使用keras.layers.core.Lambda
简单地调整图像的大小。
我应该怎么做?
tf.image.resize_images()
函数来调整图像的大小。
以下是一个小例子以说明这一点:import numpy as np
import scipy.ndimage
import matplotlib.pyplot as plt
from keras.layers import Lambda, Input
from keras.models import Model
from keras.backend import tf as ktf
# 3 channel images of arbitrary shape
inp = Input(shape=(None, None, 3))
try:
out = Lambda(lambda image: ktf.image.resize_images(image, (128, 128)))(inp)
except :
# if you have older version of tensorflow
out = Lambda(lambda image: ktf.image.resize_images(image, 128, 128))(inp)
model = Model(input=inp, output=out)
model.summary()
X = scipy.ndimage.imread('test.jpg')
out = model.predict(X[np.newaxis, ...])
fig, Axes = plt.subplots(nrows=1, ncols=2)
Axes[0].imshow(X)
Axes[1].imshow(np.int8(out[0,...]))
plt.show()
import tensorflow as tf
代替从 keras 后端获取tf
,并进行相同的操作。 - indraforyoukeras
。我通过在生成器中调整大小运行了几周的预测。但是,这是一个树莓派板,我从网上找到的自定义pip轮上安装了TensorFlow。正如我所说,如果我在生成器中调整大小,它可以正常工作。我还发现了这个解决方案,今天我需要进行调查 https://gist.github.com/bzamecnik/a33052ec46ee7efeb217856d98a4fb5f - Sam Hammamyp2.xlarge
实例进行训练。我知道我没有说清楚。我认为问题出在预测时的树莓派上。无论如何,我不想在这上面花太多时间。如果我在生成器中调整大小并在预测之前在树莓派上调整大小,一切都很好。再次感谢! - Sam Hammamy