Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras-无法通过剪裁约束输出_Python_Tensorflow_Keras - Fatal编程技术网

Python Keras-无法通过剪裁约束输出

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)

我一直试图通过将神经网络输出层的值剪裁到[-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)
    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]的输出。只看这一部分,到目前为止我觉得不错。是的,但是,我正在倒退。所以使用线性函数可以使回归工作。是的,但是,我在回归。因此,使用线性函数可以使回归工作。