web-dev-qa-db-fra.com

Existe-t-il un moyen facile d'obtenir quelque chose comme Keras model.summary dans Tensorflow?

J'ai travaillé avec Keras et j'ai vraiment aimé la model.summary() Elle donne un bon aperçu de la taille des différentes couches et surtout un aperçu du nombre de paramètres du modèle.

Existe-t-il une fonction similaire dans Tensorflow? Je n'ai rien trouvé sur Stackoverflow ou la documentation de l'API Tensorflow.

21
Carsten

Je n'ai rien vu de tel que model.summary () pour le tensorflow ... Cependant, je ne pense pas que vous en ayez besoin. Il y a un TensorBoard, où vous pouvez facilement vérifier l'architecture du NN.

enter image description herehttps://www.tensorflow.org/get_started/graph_viz

1
Paddy

On dirait que vous pouvez utiliser Slim

Exemple:

import numpy as np

from tensorflow.python.layers import base
import tensorflow as tf
import tensorflow.contrib.slim as slim

x = np.zeros((1,4,4,3))
x_tf = tf.convert_to_tensor(x, np.float32)
z_tf = tf.layers.conv2d(x_tf, filters=32, kernel_size=(3,3))

def model_summary():
    model_vars = tf.trainable_variables()
    slim.model_analyzer.analyze_vars(model_vars, print_info=True)

model_summary()

Sortie:

---------
Variables: name (type shape) [size]
---------
conv2d/kernel:0 (float32_ref 3x3x3x32) [864, bytes: 3456]
conv2d/bias:0 (float32_ref 32) [32, bytes: 128]
Total size of variables: 896
Total bytes of variables: 3584

Voici également un exemple de fonction personnalisée pour imprimer le résumé du modèle: https://github.com/NVlabs/stylegan/blob/f3a044621e2ab802d40940c16cc86042ae87e100/dnnlib/tflib/network.py#L507

Si vous avez déjà .pb modèle tensorflow que vous pouvez utiliser: inspect_pb.py pour imprimer les informations du modèle ou utiliser tensorflow summize_graph outil avec --print_structure flag, c'est aussi bien qu'il puisse détecter les noms d'entrée et de sortie.

39
mrgloom

Vous pouvez utiliser des keras avec le backend tensorflow pour obtenir les meilleures fonctionnalités des keras ou tensorflow.

0
Alexandre Passos