Keras 如何将神经网络中每一层的输入按特定的比例增加?
如何将神经网络中每一层的输入按特定的比例增加 我正在研究Keras和TensorFlow的神经网络 我想在神经网络中实现一些特性。在培训期间,我希望删除每个层的特定输入范围。比如说 假设第一层的输入范围为[-2]。我想确保[0.5]没有输入。所以我想给所有值为[0.5]的输入加上0.5 我怎么能这么做?在培训过程中Keras 如何将神经网络中每一层的输入按特定的比例增加?,keras,Keras,如何将神经网络中每一层的输入按特定的比例增加 我正在研究Keras和TensorFlow的神经网络 我想在神经网络中实现一些特性。在培训期间,我希望删除每个层的特定输入范围。比如说 假设第一层的输入范围为[-2]。我想确保[0.5]没有输入。所以我想给所有值为[0.5]的输入加上0.5 我怎么能这么做?在培训过程中 非常感谢您可以尝试Lambda函数。下面是一个示例实现。我希望这有帮助 import tensorflow as tf from tensorflow import keras f
非常感谢您可以尝试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)
只是好奇,为什么要修改图层的值?这有点难以解释。我正在进行软硬件协同设计。硬件部分我做不到,因为我不能改变物理。我想也许我可以在软件方面做点什么,让我的生活更轻松。非常感谢你的回复。这很有帮助。但是,我正在考虑将此功能作为Keras中的一个额外层。它弹出一个错误:ValueError:试图将“x”转换为张量,但失败了。错误:不支持任何值。class mylayer(层):def uu init uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,initializer='uniform',trainable=True)super(my,self)。build(input_shape)def call(self,x):为我的愚蠢问题感到抱歉,我对Keras和tensorflow不太熟悉。我在回调时做些什么吗?