コード例 #1
0
ファイル: optimizers_test.py プロジェクト: lvapeab/keras
def test_tfoptimizer():
    from keras import constraints
    import tensorflow as tf
    if tf.__version__.startswith('1.'):
        optimizer = optimizers.TFOptimizer(tf.train.AdamOptimizer())
    else:
        optimizer = tf.keras.optimizers.Adam()

    model = Sequential()
    model.add(
        Dense(num_classes,
              input_shape=(3, ),
              kernel_constraint=constraints.MaxNorm(1)))
    model.compile(loss='mean_squared_error', optimizer=optimizer)
    model.fit(np.random.random((5, 3)),
              np.random.random((5, num_classes)),
              epochs=1,
              batch_size=5,
              verbose=0)

    if tf.__version__.startswith('1.'):
        with pytest.raises(NotImplementedError):
            optimizer.weights
        with pytest.raises(NotImplementedError):
            optimizer.get_config()
        with pytest.raises(NotImplementedError):
            optimizer.from_config(None)
コード例 #2
0
def test_dense():
    layer_test(layers.Dense, kwargs={'units': 3}, input_shape=(3, 2))

    layer_test(layers.Dense, kwargs={'units': 3}, input_shape=(3, 4, 2))

    layer_test(layers.Dense, kwargs={'units': 3}, input_shape=(None, None, 2))

    layer_test(layers.Dense, kwargs={'units': 3}, input_shape=(3, 4, 5, 2))

    layer_test(layers.Dense,
               kwargs={
                   'units': 3,
                   'kernel_regularizer': regularizers.l2(0.01),
                   'bias_regularizer': regularizers.l1(0.01),
                   'activity_regularizer': regularizers.L1L2(l1=0.01, l2=0.01),
                   'kernel_constraint': constraints.MaxNorm(1),
                   'bias_constraint': constraints.max_norm(1)
               },
               input_shape=(3, 2))

    layer = layers.Dense(3,
                         kernel_regularizer=regularizers.l1(0.01),
                         bias_regularizer='l1')
    layer.build((None, 4))
    assert len(layer.losses) == 2
コード例 #3
0
ファイル: test_core.py プロジェクト: zyzzhaoyuzhe/keras
def test_maxout_dense():
    from keras import regularizers
    from keras import constraints

    layer_test(core.MaxoutDense, kwargs={'output_dim': 3}, input_shape=(3, 2))

    layer_test(core.MaxoutDense,
               kwargs={
                   'output_dim': 3,
                   'W_regularizer': regularizers.l2(0.01),
                   'b_regularizer': regularizers.l1(0.01),
                   'activity_regularizer': regularizers.activity_l2(0.01),
                   'W_constraint': constraints.MaxNorm(1),
                   'b_constraint': constraints.MaxNorm(1)
               },
               input_shape=(3, 2))
コード例 #4
0
def test_tfoptimizer_pass_correct_named_params_to_native_tensorflow_optimizer(
):
    from keras import constraints
    from tensorflow import train

    class MyTfOptimizer(train.Optimizer):
        wrapping_optimizer = train.AdamOptimizer()

        def compute_gradients(self, loss, **kwargs):
            return super(MyTfOptimizer, self).compute_gradients(loss, **kwargs)

        def apply_gradients(self, grads_and_vars, **kwargs):
            return self.wrapping_optimizer.apply_gradients(
                grads_and_vars, **kwargs)

    my_tf_optimizer = MyTfOptimizer(use_locking=False, name='MyTfOptimizer')
    optimizer = optimizers.TFOptimizer(my_tf_optimizer)
    model = Sequential()
    model.add(
        Dense(num_classes,
              input_shape=(3, ),
              kernel_constraint=constraints.MaxNorm(1)))
    model.compile(loss='mean_squared_error', optimizer=optimizer)
    model.fit(np.random.random((5, 3)),
              np.random.random((5, num_classes)),
              epochs=1,
              batch_size=5,
              verbose=0)
コード例 #5
0
def test_timedistributeddense():
    from keras import regularizers
    from keras import constraints

    layer_test(core.TimeDistributedDense,
               kwargs={'output_dim': 2, 'input_length': 2},
               input_shape=(3, 2, 3))

    layer_test(core.TimeDistributedDense,
               kwargs={'output_dim': 3,
                       'W_regularizer': regularizers.l2(0.01),
                       'b_regularizer': regularizers.l1(0.01),
                       'activity_regularizer': regularizers.activity_l2(0.01),
                       'W_constraint': constraints.MaxNorm(1),
                       'b_constraint': constraints.MaxNorm(1)},
               input_shape=(3, 2, 3))
コード例 #6
0
ファイル: test_core.py プロジェクト: rasi5050/keras
def test_cosinedense():
    from keras import regularizers
    from keras import constraints
    from keras.models import Sequential

    layer_test(core.CosineDense, kwargs={'units': 3}, input_shape=(3, 2))

    layer_test(core.CosineDense, kwargs={'units': 3}, input_shape=(3, 4, 2))

    layer_test(core.CosineDense,
               kwargs={'units': 3},
               input_shape=(None, None, 2))

    layer_test(core.CosineDense, kwargs={'units': 3}, input_shape=(3, 4, 5, 2))

    layer_test(core.CosineDense,
               kwargs={
                   'units': 3,
                   'kernel_regularizer': regularizers.l2(0.01),
                   'bias_regularizer': regularizers.l1(0.01),
                   'activity_regularizer': regularizers.l2(0.01),
                   'kernel_constraint': constraints.MaxNorm(1),
                   'bias_constraint': constraints.MaxNorm(1)
               },
               input_shape=(3, 2))

    X = np.random.randn(1, 20)
    model = Sequential()
    model.add(core.CosineDense(1, use_bias=True, input_shape=(20, )))
    model.compile(loss='mse', optimizer='rmsprop')
    W = model.get_weights()
    W[0] = X.T
    W[1] = np.asarray([1.])
    model.set_weights(W)
    out = model.predict(X)
    assert_allclose(out, np.ones((1, 1), dtype=K.floatx()), atol=1e-5)

    X = np.random.randn(1, 20)
    model = Sequential()
    model.add(core.CosineDense(1, use_bias=False, input_shape=(20, )))
    model.compile(loss='mse', optimizer='rmsprop')
    W = model.get_weights()
    W[0] = -2 * X.T
    model.set_weights(W)
    out = model.predict(X)
    assert_allclose(out, -np.ones((1, 1), dtype=K.floatx()), atol=1e-5)
コード例 #7
0
ファイル: optimizers_test.py プロジェクト: zqy0/keras
def test_tfoptimizer():
    from keras import constraints
    from tensorflow import train
    optimizer = optimizers.TFOptimizer(train.AdamOptimizer())
    model = Sequential()
    model.add(Dense(num_classes, input_shape=(3,), kernel_constraint=constraints.MaxNorm(1)))
    model.compile(loss='mean_squared_error', optimizer=optimizer)
    model.fit(np.random.random((5, 3)), np.random.random((5, num_classes)),
              epochs=1, batch_size=5, verbose=0)
    # not supported
    with pytest.raises(NotImplementedError):
        optimizer.weights
    with pytest.raises(NotImplementedError):
        optimizer.get_config()
    with pytest.raises(NotImplementedError):
        optimizer.from_config(None)