如何以特定比例增加神经网络中每一层的输入?

时间:2019-11-05 20:49:42

标签: keras

如何以特定比例增加神经网络中每一层的输入?

我正在与Keras和TensorFlow一起开发神经网络。

我想在神经网络中实现一些功能。在培训期间,我想为每个图层删除特定范围的输入。例如

假设第一层的输入为[-2 2]范围。我想确保[0 0.5]处没有输入。因此,我想将0.5的所有输入值加[0 0.5]。

我该怎么做?在培训过程中。

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Lambda函数。下面是一个示例实现。我希望这会有所帮助。

import tensorflow as tf
from tensorflow import keras

from tensorflow.keras import layers
import numpy as np

def myClippingFunction(x):
    y = tf.math.logical_and(tf.math.greater_equal(x, [[0]]), tf.math.less_equal(x, [[0.5]]) )
    z = tf.where(y,x+0.5,x)
    return z

#create simple model
inputA = layers.Input((1,)) 
x = layers.Lambda(myClippingFunction)(inputA)
myModel = keras.Model(inputs=inputA, outputs=x)


x_data = np.array([[-0.2],[0.6]])
myModel.predict(x_data)