Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/es-419/guide/migrate/tensorboard.ipynb
25118 views
Kernel: Python 3
#@title Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.

Migrar TensorBoard: Kit de herramientas de visualización de TensorFlow

TensorBoard es una herramienta incorporada que ofrece mediciones y visualizaciones en TensorFlow. Las métricas comunes de los experimentos de aprendizaje automático, como la precisión y la pérdida, pueden rastrearse y visualizarse en TensorBoard. TensorBoard es compatible con código de TensorFlow 1 y 2.

En TensorFlow 1, tf.estimator.Estimator guarda los sumarios para TensorBoard de forma predeterminada. En cambio, en TensorFlow 2, los sumarios pueden guardarse usando una retrollamada tf.keras.callbacks.TensorBoard.

Esta guía muestra cómo usar TensorBoard, primero, en TensorFlow 1 con Estimators, y después, cómo llevar a cabo el proceso equivalente en TensorFlow 2.

Preparación

import tensorflow.compat.v1 as tf1 import tensorflow as tf import tempfile import numpy as np import datetime %load_ext tensorboard
mnist = tf.keras.datasets.mnist # The MNIST dataset. (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0

TensorFlow 1: TensorBoard con tf.estimator

En este ejemplo de TensorFlow 1, instancias un tf.estimator.DNNClassifier, lo entrenas y evalúas sobre el conjunto de datos MNIST, y usas TensorBoard para mostrar las métricas:

%reload_ext tensorboard feature_columns = [tf1.feature_column.numeric_column("x", shape=[28, 28])] config = tf1.estimator.RunConfig(save_summary_steps=1, save_checkpoints_steps=1) path = tempfile.mkdtemp() classifier = tf1.estimator.DNNClassifier( feature_columns=feature_columns, hidden_units=[256, 32], optimizer=tf1.train.AdamOptimizer(0.001), n_classes=10, dropout=0.1, model_dir=path, config = config ) train_input_fn = tf1.estimator.inputs.numpy_input_fn( x={"x": x_train}, y=y_train.astype(np.int32), num_epochs=10, batch_size=50, shuffle=True, ) test_input_fn = tf1.estimator.inputs.numpy_input_fn( x={"x": x_test}, y=y_test.astype(np.int32), num_epochs=10, shuffle=False ) train_spec = tf1.estimator.TrainSpec(input_fn=train_input_fn, max_steps=10) eval_spec = tf1.estimator.EvalSpec(input_fn=test_input_fn, steps=10, throttle_secs=0) tf1.estimator.train_and_evaluate(estimator=classifier, train_spec=train_spec, eval_spec=eval_spec)
%tensorboard --logdir {classifier.model_dir}

TensorFlow 2: TensorBoard con una retrollamada Keras y Model.fit

En este ejemplo de TensorFlow 2, creas y almacenas registros con la retrollamada tf.keras.callbacks.TensorBoard, y entrenas el modelo. La retrollamada registra la precisión y la pérdida por época. Se pasa a Model.fit en la lista callbacks.

%reload_ext tensorboard def create_model(): return tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28), name='layers_flatten'), tf.keras.layers.Dense(512, activation='relu', name='layers_dense'), tf.keras.layers.Dropout(0.2, name='layers_dropout'), tf.keras.layers.Dense(10, activation='softmax', name='layers_dense_2') ]) model = create_model() model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'], steps_per_execution=10) log_dir = tempfile.mkdtemp() tensorboard_callback = tf.keras.callbacks.TensorBoard( log_dir=log_dir, histogram_freq=1) # Enable histogram computation with each epoch. model.fit(x=x_train, y=y_train, epochs=10, validation_data=(x_test, y_test), callbacks=[tensorboard_callback])
%tensorboard --logdir {tensorboard_callback.log_dir}

Siguientes pasos