当前位置:  开发笔记 > 编程语言 > 正文

调整Keras Lambda图层中的输入图像大小

如何解决《调整KerasLambda图层中的输入图像大小》经验,为你挑选了1个好方法。

我希望我的keras模型使用cv2或类似的方法调整输入图像的大小.

我已经看过了使用ImageGenerator,但我更喜欢编写自己的生成器,只需调整第一层图像的大小keras.layers.core.Lambda.

我该怎么做?



1> indraforyou..:

如果您正在使用tensorflow后端,则可以使用tf.image.resize_images()函数来调整Lambda图层中的图像大小.

这是一个展示相同的小例子:

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()

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有