Example #1
0
  def test_mixing_preprocessing_and_regular_layers(self):
    x0 = Input(shape=(10, 10, 3))
    x1 = Input(shape=(10, 10, 3))
    x2 = Input(shape=(10, 10, 3))

    y0 = merge.Add()([x0, x1])
    y1 = image_preprocessing.CenterCrop(8, 8)(x2)
    y1 = convolutional.ZeroPadding2D(padding=1)(y1)

    z = merge.Add()([y0, y1])
    z = normalization.Normalization()(z)
    z = convolutional.Conv2D(4, 3)(z)

    stage = preprocessing_stage.FunctionalPreprocessingStage([x0, x1, x2], z)

    data = [
        np.ones((12, 10, 10, 3), dtype='float32'),
        np.ones((12, 10, 10, 3), dtype='float32'),
        np.ones((12, 10, 10, 3), dtype='float32')
    ]

    stage.adapt(data)
    _ = stage(data)
    stage.compile('rmsprop', 'mse')
    with self.assertRaisesRegex(ValueError, 'Preprocessing stage'):
      stage.fit(data, np.ones((12, 8, 8, 4)))

    ds_x0 = dataset_ops.Dataset.from_tensor_slices(np.ones((12, 10, 10, 3)))
    ds_x1 = dataset_ops.Dataset.from_tensor_slices(np.ones((12, 10, 10, 3)))
    ds_x2 = dataset_ops.Dataset.from_tensor_slices(np.ones((12, 10, 10, 3)))
    ds_x = dataset_ops.Dataset.zip((ds_x0, ds_x1, ds_x2))
    ds_y = dataset_ops.Dataset.from_tensor_slices(np.ones((12, 8, 8, 4)))
    dataset = dataset_ops.Dataset.zip((ds_x, ds_y)).batch(4)

    with self.assertRaisesRegex(ValueError, 'Preprocessing stage'):
      stage.fit(dataset)
    _ = stage.evaluate(data, np.ones((12, 8, 8, 4)))
    _ = stage.predict(data)
Example #2
0
 def test_export_multi_input_functional_keras_model(self):
   x1 = input_layer.Input((2,), name="x1")
   x2 = input_layer.Input((2,), name="x2")
   y1 = core.Dense(4)(merge.Add()([x1, x2]))
   y2 = core.Dense(4)(merge.Multiply()([x1, x2]))
   model = training.Model([x1, x2], [y1, y2])
   save_dir = os.path.join(self.get_temp_dir(), "saved_model")
   save.save(model, save_dir)
   outputs = model([array_ops.ones([1, 2]), 2. * array_ops.ones([1, 2])])
   self.assertAllClose(
       {"dense": outputs[0], "dense_1": outputs[1]},
       _import_and_infer(
           save_dir,
           {"x1": [[1., 1.]],
            "x2": [[2., 2.]]}))