如何以特定比例增加神经网络中每一层的输入?
我正在与Keras和TensorFlow一起开发神经网络。
我想在神经网络中实现一些功能。在培训期间,我想为每个图层删除特定范围的输入。例如
假设第一层的输入为[-2 2]范围。我想确保[0 0.5]处没有输入。因此,我想将0.5的所有输入值加[0 0.5]。
我该怎么做?在培训过程中。
非常感谢
答案 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)