Python Keras-无法通过剪裁约束输出
我一直试图通过将神经网络输出层的值剪裁到[-1,1]范围来限制最后一层的输出。但是,剪裁无助于约束值。有没有更有效的方法来约束输出Python Keras-无法通过剪裁约束输出,python,tensorflow,keras,Python,Tensorflow,Keras,我一直试图通过将神经网络输出层的值剪裁到[-1,1]范围来限制最后一层的输出。但是,剪裁无助于约束值。有没有更有效的方法来约束输出 def encoder(self, x_next, x, y, keep_prob): x_con = concatenate([x_next, x, y]) enc1 = Dense(self.encoder_size[0], activation='relu')(x_con) drop = Dropout(keep_prob)(enc1)
def encoder(self, x_next, x, y, keep_prob):
x_con = concatenate([x_next, x, y])
enc1 = Dense(self.encoder_size[0], activation='relu')(x_con)
drop = Dropout(keep_prob)(enc1)
enc2 = Dense(self.encoder_size[1], activation='relu')(drop)
drop = Dropout(keep_prob)(enc2)
enc3 = Dense(self.encoder_size[2], activation='relu')(drop)
mu = Dense(self.latent_dim, activation='linear', name='encoder_mean')(enc3)
mu_clipped = Lambda(self.clip_val)(mu)
log_var = Dense(self.latent_dim, activation='linear', name='encoder_log_var', kernel_initializer='zeros')(enc3)
return mu_clipped, log_var
def clip_val(self, args):
mu = args
mu_clip = K.clip(mu, min_value=-1.0, max_value=1.0)
return mu_clip
我得到的输出值范围为[-7.1,7.2]范围。如何约束输出层以生成[-1,1]范围内的值?谢谢 > P>根据你的问题,你应该考虑把网络输出的剪辑留给你最后一层的激活函数:使用TANH激活确保Y={ 1…1 }。
> P>根据你的问题,你应该考虑把网络输出的剪辑留给你最后一层的激活函数:使用TANH激活确保Y={ 1…1 }。 如果您发布一个最小的测试示例来显示不正确的结果会更好<在我自己的测试用例中,code>mu_clipped确实介于[-1,1]之间。但是我不确定从哪里得到[-7.1,7.2]的输出。只看这一部分,到目前为止我觉得不错。如果您发布一个最小的测试示例来显示不正确的结果会更好<在我自己的测试用例中,code>mu_clipped确实介于[-1,1]之间。但是我不确定从哪里得到[-7.1,7.2]的输出。只看这一部分,到目前为止我觉得不错。是的,但是,我正在倒退。所以使用线性函数可以使回归工作。是的,但是,我在回归。因此,使用线性函数可以使回归工作。