2017-08-07 1 views
0

Je normalise mes données d'entraînement d'entrée en utilisant data_norm = tf.nn.l2_normalize(data, 0).Existe-t-il un moyen tensorflow pour extraire/enregistrer les moyennes et std utilisées pour la normalisation?

Les données sont de forme [None, 4]. Chaque colonne est une caractéristique. Il pourrait ressembler à ceci:

data = [[-3., 0.2, 1.6, 0.5], 
     [3.6, 1.5, -1.9, 0.71], 
     ...] 

Je comprends que la normalisation donnée dans l'ensemble de la formation, le test fixé doit être normalisée aussi, mais en utilisant le std et mean de la formation mis. (Je suppose que ceci s'applique également pendant l'utilisation réelle du NN, c'est-à-dire que l'entrée doit être normalisée en utilisant le jeu d'apprentissage mean, std avant de l'introduire dans le NN).

Y at-il un moyen d'extraire/enregistrer le mean, std utilisé pour la normalisation de cette fonction, donc je peux normaliser mon jeu de test en utilisant la même moyenne, std utilisé pour normaliser les données de formation? Je sais comment enregistrer les poids, etc. avec saver.save(sess, "checkpoints/" + save_id). Y at-il un moyen de sauvegarder/charger STD, veux dire comme ça?

Répondre

1

tf.nn.l2_normalize utilisez la moyenne réelle des données d'entrée, vous ne pouvez pas utiliser cette fonction pour utiliser les données d'entraînement mean ou std. l2_normalize_docs

output_l2_normalize = input/sqrt(max(sum(input**2), epsilon)) 

Note: Puisque vous essayez de normaliser les données d'entrée, vous pouvez précalculer global (ensemble de données de formation) et meanstd et écrire votre propre fonction de normaliser.

+0

Qu'est-ce qu'un "real_time" signifie, par opposition à une moyenne régulière? – sandboxj

+1

comme il est calculé pendant l'exécution à partir des données d'entrée de la fonction, pas restauré à partir de toute autre constante. vous pouvez le supposer aussi régulier que moyen. –

0

De l'documentation:

Pour un tenseur 1-D avec dim = 0, calcule

output = x/sqrt(max(sum(x**2), epsilon)) 

epsilon est par défaut à 1E-12, ou 10 à l'-12.

Vous pouvez donc simplement appliquer cette même fonction aux données de test.

HTH!

Cheers,

-maashu