当前位置: 首页 > 面试题库 >

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

东方骏
2023-03-14
问题内容

我希望我的keras模型使用cv2或类似格式来调整输入图像的大小。

我已经看到了的用法ImageGenerator,但是我更愿意编写自己的生成器,并简单地使用调整第一层图像的大小keras.layers.core.Lambda

我该怎么做?


问题答案:

如果您正在使用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()


 类似资料:
  • 问题内容: 我正在使用Grails开发网络相册,并且用于图像处理,正在使用grails-image-tools插件。如果上传的图像太大(例如:大于600 * 840),我需要一种功能来调整图像的大小。在这种情况下,我需要将此图像调整为600 * 840)。最有效的方法是什么?非常感谢。 问题答案:

  • 问题内容: 我在这里使用Go调整大小包:https://github.com/nfnt/resize 我正在从S3中提取图像,如下所示: // this gives me data []byte 之后,我需要调整图像大小: // problem is that the original_image has to be of type image.Image 将图像上传到我的S3存储桶 // pro

  • 我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?

  • 我正在尝试在我的 react 本机应用程序中调整图像大小(更小以适合屏幕),但由于它太大而无法执行此操作。 代码如下: 我试着把它从容器标签中取出来,但是似乎不明白为什么它不能正确渲染? 用flexbox resizeMode可以做到这一点吗?你是怎么做到的?我在上面找不到任何文件...

  • 问题内容: 我需要调整图像大小,但是我想避免使用PIL,因为我无法使其在OS X下运行-不要问我为什么… 无论如何,因为我对gif / pgm / ppm感到满意,所以PhotoImage类对我来说还可以: 问题是-如何调整图像大小?以下仅适用于PIL,与非PIL等效吗? 谢谢! 问题答案: 因为这两个 和希望整数作为参数,我用这两种。 我不得不将320x320图片的尺寸调整为250x250,最终

  • 问题内容: 我要在pdf文件中添加一个水印。水印是.bmp图像,并且是2290 x3026。尝试调整此图片的大小以适合页面时,我遇到很多麻烦,有人有什么建议吗? 这是方法的输出。 我会与你们共享pdf图片,但不幸的是我不能。 我应该尝试改用.jpg吗?我真的不知道iText如何处理不同的图像扩展名。 问题答案: 您可以使用另一种方法:“手动”调整图像大小(即通过图像处理软件),而不是通过iText