Tensorflow Keras预处理层
目前,我将所有预处理应用于数据集。 但是我发现我可以将预处理作为模型的一部分。 我了解到,层预处理在测试时处于非活动状态,但重新zizing层是什么? 例如:Tensorflow Keras预处理层,tensorflow,keras,Tensorflow,Keras,目前,我将所有预处理应用于数据集。 但是我发现我可以将预处理作为模型的一部分。 我了解到,层预处理在测试时处于非活动状态,但重新zizing层是什么? 例如: model = Sequential([ layers.experimental.preprocessing.Resizing(180, 180), layers.experimental.preprocessing.Rescaling(1./255), layers.Conv2D(16, 3, padding='same',
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的大小
提前谢谢你 在评估/测试时,仅禁用以
Random
开头的预处理层
在您的情况下,将在每种情况下启用层调整大小
和重新调整大小
您可以在源代码中检查您感兴趣的层是否在其方法调用中使用了training
布尔参数,并在控制流\u util.smart\u cond
中使用该布尔值
例如,该层不会:
而图层会:
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
class RandomFlip(PreprocessingLayer):
def call(self, inputs, training=True):
if training is None:
training = K.learning_phase()
def random_flipped_inputs():
flipped_outputs = inputs
if self.horizontal:
flipped_outputs = image_ops.random_flip_left_right(flipped_outputs,
self.seed)
if self.vertical:
flipped_outputs = image_ops.random_flip_up_down(
flipped_outputs, self.seed)
return flipped_outputs
output = control_flow_util.smart_cond(training, random_flipped_inputs,
lambda: inputs)
output.set_shape(inputs.shape)
return output