Tensorflow Keras 预处理层

时间:2021-02-10 12:10:16

标签: tensorflow keras

目前我将所有预处理应用于数据集。 但是我看到我可以将预处理作为模型的一部分。 我读到图层预处理在测试时处于非活动状态,但是调整图层是什么? 例如:

model = Sequential([
  layers.experimental.preprocessing.Resizing(180, 180),
  layers.experimental.preprocessing.Rescaling(1./255),
  layers.Conv2D(16, 3, padding='same', activation='relu'),
  ...

如果我现在使用 model.predict(img) 会发生什么,img 会自动调整大小还是在预测之前我仍然需要调整 img 的大小?

先谢谢你!

1 个答案:

答案 0 :(得分:1)

只有以 Qs 开头的预处理层在评估/测试时被禁用。

在您的情况下,层 RandomResizing 将在每种情况下启用。

您可以在源代码中检查您感兴趣的层是否在其方法 Rescaling 中采用 training 布尔参数,并在 call 中使用该布尔值。

例如,层 Resizing 不会:

<块引用>
control_flow_util.smart_cond

虽然层 RandomFlip 做了:

<块引用>
class Resizing(PreprocessingLayer):

    def call(self, inputs):
        outputs = image_ops.resize_images_v2(
        images=inputs,
        size=[self.target_height, self.target_width],
        method=self._interpolation_method)
    return outputs