Python ';tanh';激活函数有一个奇怪的输出

Python ';tanh';激活函数有一个奇怪的输出,python,keras,artificial-intelligence,Python,Keras,Artificial Intelligence,使用keras,我从“tanh”激活函数得到了一个错误的输出。它应该给出[-1,1]范围内的浮动,但我得到的输出是[-10,10]范围内的。这里有什么问题?谢谢 这是模型结构: def create_generator(dim=NOISE_DIM, optimizer=GEN_OPTIMIZER): generator = Sequential() # Starting size d = 4 generator.add(Dense(d*d*256, kernel_initializer=Ran

使用keras,我从“tanh”激活函数得到了一个错误的输出。它应该给出[-1,1]范围内的浮动,但我得到的输出是[-10,10]范围内的。这里有什么问题?谢谢

这是模型结构:

def create_generator(dim=NOISE_DIM, optimizer=GEN_OPTIMIZER):
generator = Sequential()

# Starting size
d = 4
generator.add(Dense(d*d*256, kernel_initializer=RandomNormal(0, 0.02), input_dim=dim))
generator.add(LeakyReLU(0.2))
# 4x4x256
generator.add(Reshape((d, d, 256)))

# 8x8x128
generator.add(Conv2DTranspose(128, (4, 4), strides=2, padding='same', kernel_initializer=RandomNormal(0, 0.02)))
generator.add(LeakyReLU(0.2))

# 16x16*128
generator.add(Conv2DTranspose(128, (4, 4), strides=4, padding='same', kernel_initializer=RandomNormal(0, 0.02)))
generator.add(LeakyReLU(0.2))

# 64x64x128
generator.add(Conv2DTranspose(128, (4, 4), strides=2, padding='same', kernel_initializer=RandomNormal(0, 0.02)))
generator.add(LeakyReLU(0.2))

# 64x64x3
generator.add(Conv2D(3, (3, 3), padding='same', activation='tanh', kernel_initializer=RandomNormal(0, 0.02)))

generator.compile(loss='binary_crossentropy', optimizer=optimizer)
return generator
输出示例:

      ...

  [[-1.31739629e-03 -9.18284408e-04 -8.88809795e-04]
   [ 5.84446476e-04  1.48985186e-03 -8.59379943e-04]
   [ 1.28604515e-04 -2.04776973e-03 -6.45169814e-04]
   ...
   [-1.10365311e-03  4.84788558e-04 -1.07841019e-03]
   [-1.61853048e-03  2.44487106e-04 -2.03575328e-04]
   [-1.30298943e-03  1.26789114e-03 -6.83081045e-04]]

  [[-3.66462773e-04 -2.87405564e-04 -3.52254836e-04]
   [-7.28385407e-04  3.68534849e-04  9.69631219e-05]
   [-1.90682462e-04  6.41632010e-04 -1.34694483e-03]
   ...
   [-1.31186307e-03 -2.17378582e-03  1.81564025e-03]
   [-1.35134242e-03  4.37091017e-04  3.16255668e-04]
   [-1.82685023e-03 -4.86125617e-04  5.67631563e-04]]

  [[-7.98511028e-04 -8.82301887e-04 -1.65282312e-04]
   [-1.44832267e-03 -6.28359208e-04 -9.62364720e-04]
   [-2.95009726e-04  1.77540205e-04 -1.48139487e-04]
   ...
   [-6.42001803e-04  4.31965804e-04  6.40484213e-04]
   [-1.32995576e-03  8.39460583e-04 -3.31234711e-04]
   [ 5.94170066e-04  3.08730640e-04  8.76617676e-04]]]]

所以你在这里遇到的是科学符号

在Python中,科学表示法只是一种格式,而值只是一个浮点数,因此可以执行以下操作:

    >>> print(-1.31739629e-03)
-0.00131739629

因为e后面的数字是负数,所以将小数点向左移动。这意味着你们没有一个输出小于-1或大于1。

输出中的值在[-10,10]范围内?它们是科学记数法……这是一种神秘的浮点格式。连字符后面的数字表示前导零吗?哦!现在有道理了。谢谢