[英]Looks like keras Normalization layer doesn't denormalize properly
我想使用 keras 規范化層來“非規范化”我的 output。這個 object 的文檔說參數“invert=True”就是這樣做的,但它的行為根本不像我想的那樣......
我試圖找出問題並表明它不計算歸一化的逆
import numpy as np
import tensorflow as tf
from tensorflow import keras
from keras import layers
norm = layers.Normalization()
denorm = layers.Normalization(invert=True)
y = np.array([[10.0],
[20.0],
[30.0]])
norm.adapt(y)
denorm.adapt(y)
在這里,我檢查了均值和方差,看起來兩者是一樣的,現在一切都很好。
print(norm(20))
print(denorm(0))
我得到 output 0 和 163.29932 而不是 0 和 20... 看起來非規范化添加了平均值,然后乘以 std 而不是先乘以 std。
keras 版本可能與此處相關:
print(keras.__version__)
Output: '2.10.0'
我查看了代碼,發現確實是錯誤的(加上均值再乘以標准差)。
我打開了一個 pull request 來修復這個問題,它已經被接受,所以它應該會在短時間內修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.