python - 警告:tensorflow:`write_grads` 将在 TensorFlow 2.0 中忽略`TensorBoard` 回调
问题描述
我正在使用以下代码行使用 tensorboard 可视化 ANN 模型的梯度
tensorboard_callback = tf.compat.v1.keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq=1, write_graph = True, write_grads =True, write_images = False)
tensorboard_callback .set_model(model)
%tensorboard --logdir ./Graph
我收到一条警告消息,上面写着“警告:tensorflow:write_grads
将在 TensorFlow 2.0 中忽略TensorBoard
回调。”
我得到了张量板输出,但没有渐变。
可能的原因是什么?
(注:我使用的是 2.3.0 tensorflow 版本)
谢谢你。
解决方案
Write_Grads
中未实施TF2.x
。这是仍然开放的备受期待的功能请求之一。请将此 GitHub问题作为功能请求进行检查。所以,我们只需要导入TF1.x
模块并使用write_grads
,如下代码所示。
# Load the TensorBoard notebook extension
%load_ext tensorboard
import tensorflow as tf
import datetime
# Clear any logs from previous runs
!rm -rf ./logs/
# Disable V2 behavior
tf.compat.v1.disable_v2_behavior()
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model():
return tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model = create_model()
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.compat.v1.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1, write_grads =True)
model.fit(x=x_train, y=y_train, epochs=1, validation_data=(x_test, y_test), callbacks=[tensorboard_callback])
%tensorboard --logdir logs/fit
输出:
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
11493376/11490434 [==============================] - 0s 0us/step
Train on 60000 samples, validate on 10000 samples
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_v1.py:2048: Model.state_updates (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.
Instructions for updating:
This property should not be used in TensorFlow 2.0, as updates are applied automatically.
32/60000 [..............................] - ETA: 0s - loss: 2.3311 - acc: 0.0312WARNING:tensorflow:Callbacks method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0055s vs `on_train_batch_end` time: 0.0235s). Check your callbacks.
60000/60000 [==============================] - 17s 288us/sample - loss: 0.2187 - acc: 0.9349 - val_loss: 0.1012 - val_acc: 0.9690
<tensorflow.python.keras.callbacks.History at 0x7f7ebd1d3d30>
推荐阅读
- python - 如何在 Python 中的特定行之后仅获取单词第一次出现的行?
- google-cloud-platform - 无法连接谷歌云虚拟机
- git - 删除 git 中的最后一次提交后无法推送到 github
- c++ - 使用 nullptr 作为 std::unordered_map 的键有什么后果吗?
- php - laravel 子窗体。将数据提交到两个不同的表
- objective-c - 使用内容数组(旧版)布局时未调用 NSCollectionViewDelegate
- node.js - Docker 容器在使用“sh -c”运行时退出
- docker - db:b'驱动器共享似乎被防火墙阻止'
- blazor - Blazor StateHasChanged 无法按预期工作
- php - 我已经安装了最新版本的 laravel Laravel Framework 7.0-dev