如何将神经网络中每一层的输入增加特定的规模?
我正在与Keras和TensorFlow一起研究神经网络。
我想在神经网络中实现一些功能。在训练过程中,我想删除每一层的特定输入范围。例如
假设第一层的输入是一个[-22]的范围。我想确保在[00.5]处没有输入。所以我想在值为[00.5]的所有输入上加0.5。
我怎么能那样做?在培训过程中。
非常感谢
您可以尝试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)