Kaggle上使用Tensorboard

1. 前言

  • 想在Kaggle上使用Tensorboard,找了一圈。
  • 参考了Kaggle上的一个Code:Tensorboard on Kaggle
  • 但发现有些变化,Code中用到的内网穿透工具Ngrok需要加一个Token,所以需要注册一个Ngrok账号,免费获取一个通道的Token。

2. Kaggle上使用Tensorboard

2.1. 方法一

  • 其实直接把在Kaggle上跑出来的Tensorboard日志文件下载到本地,在本地启动Tensorboard即可查看。
  • 当然,这里主要讲在线的方法。

2.2. 方法二

  • 在线使用Tensorboard

2.2.1. 获取一个Ngrok的免费通道

  • 访问Ngrok,注册一个账号并登录
  • 登录后界面如下,复制并保存你的Token
    在这里插入图片描述

2.2.2. 调试运行代码

  • 主要参考Kaggle上的一个Code:Tensorboard on Kaggle
  • 建议分段运行,以避免中间出错,全部重新运行一次
  • 以下代码在Kaggle的Notebook中运行
(1) 环境准备
import tensorflow as tf # This is how we import tf
# Clear any logs from previous runs
# 清除以前运行的所有日志
!rm -rf ./logs/ 
!mkdir ./logs/
(2) 启动Tensorboard
# Download Ngrok to tunnel the tensorboard port to an external port
# 下载 Ngrok 以将 tensorboard 端口隧道传输到外部端口
!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
!unzip ngrok-stable-linux-amd64.zip
# 添加自己在 Ngrok 上获取的专属Token
!./ngrok authtoken 粘贴你的专属Token
  • 注意这一步需要添加自己在 Ngrok 上获取的专属Token

在这里插入图片描述

# Run tensorboard as well as Ngrok (for tunneling as non-blocking processes)
# 运行 tensorboard 和 Ngrok(用于作为非阻塞进程的隧道)
import os
import multiprocessing

pool = multiprocessing.Pool(processes = 10)
# --logdir ./logs/ 是 TensorBoard 的日志文件(log)路径
# 你可以修改为你训练时的log保存路径(可以用绝对/相对路径),但相关的代码路径也要记得修改
results_of_processes = [pool.apply_async(os.system, args=(cmd, ), callback = None )
                        for cmd in [
                        f"tensorboard --logdir ./logs/ --host 0.0.0.0 --port 6006 &",
                        "./ngrok http 6006 &"
                        ]]
  • 获取访问 Tensorload 的URL,访问生成的URL即可看到 Tensorload 界面
  • 但还没有产生日志文件,所以现在还看不到有图形
! curl -s http://localhost:4040/api/tunnels | python3 -c \
    "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3) 创建和训练模型
(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')
  ])
import datetime
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.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

model.fit(x=x_train, 
          y=y_train, 
          epochs=10, 
          validation_data=(x_test, y_test), 
          callbacks=[tensorboard_callback])
  • 产生日志文件后,就可以在打开的 Tensorboard 界面点击刷新,看到实时训练趋势了
    在这里插入图片描述

到底了 😃

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kaggle 平台上使用 TensorBoard 可以帮助您可视化和分析训练过程中的指标、损失函数值以及模型的结构等。Kaggle 提供了一种简单的方法来在 Kaggle Notebooks 中使用 TensorBoard。 下面是一个在 Kaggle Notebooks 中使用 TensorBoard 的示例代码: ```python from torch.utils.tensorboard import SummaryWriter # 创建 SummaryWriter 对象,将 TensorBoard 日志文件保存在默认路径 writer = SummaryWriter() # 记录训练过程中的指标 for epoch in range(num_epochs): # 计算指标 train_loss = ... train_accuracy = ... # 将指标写入 SummaryWriter writer.add_scalar('Train/Loss', train_loss, epoch) writer.add_scalar('Train/Accuracy', train_accuracy, epoch) # 关闭 SummaryWriter writer.close() ``` 运行以上代码后,会在当前目录下生成一个名为 `runs` 的文件夹,其中包含了 TensorBoard 日志文件。您可以在 Kaggle Notebooks 中使用以下代码来启动 TensorBoard: ```python %load_ext tensorboard %tensorboard --logdir runs ``` 然后,您可以在 Kaggle Notebooks 的输出窗口中看到一个链接,点击该链接即可打开 TensorBoard 界面。在 TensorBoard 中,您可以查看训练曲线、损失函数值、模型图表等,并进行比较和分析。 请注意,在 Kaggle 平台上使用 TensorBoard 需要确保您的环境支持 TensorBoard,并且已经安装了相关的库。您可以在 Kaggle Notebooks 中使用 `!pip install` 命令来安装所需的库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值