当前位置:
首页 > temp > python入门教程 >
-
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 界面点击刷新,看到实时训练趋势了
到底了
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数