首页 > 其他分享 >Kaggle上使用Tensorboard

Kaggle上使用Tensorboard

时间:2023-04-21 22:15:06浏览次数:46  
标签:Tensorboard keras Kaggle tensorboard 使用 tf Ngrok

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
    image

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

image

# 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'])"

image
image
image

(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 界面点击刷新,看到实时训练趋势了
    image

到底了

标签:Tensorboard,keras,Kaggle,tensorboard,使用,tf,Ngrok
From: https://www.cnblogs.com/jhy-ColdMoon/p/17341992.html

相关文章

  • 【Linux】项目自动化构建工具-make/Makefile的使用
    目录前言依赖依赖关系依赖方法使用项目清理前言......
  • 2、Pipeline语法及使用自定义工具的Maven工程
    Pipeline语法声明式pipeline的结构pipeline的定义有一个明确的、必须遵循的结构,它由一些directive(指令)和section(配置段)组成,每一个section又可包含其它的section、directive和step(执行步骤),以及一些condition(执行条件)的定义;◼Section:用于将那些在某个时间点需要一同运行的条目(i......
  • 使用python完成一个射击类游戏“小黄人保卫战”
    1.项目开发环境下载Python且保证能够正常工作,为了能用Python来写一个游戏,需要安装PyGame。PyGame是一个Python的库,能够让我们容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏里。2.项目功能介绍通过设计一款塔防游戏“小黄......
  • 快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台
    在上一篇我们已经初步认识了Kubernetes,在本篇我们就开始着手搭建kubernetes,具体操作如下:1.环境准备(1).环境说明节点名称机器IP系统master10.2.3.191CentOS7.7node110.2.3.192CentOS7.7node210.2.3.190CentOS7.7(2).禁止swap(三台机器上都操作)swapoff-a#临时改配置文件/etc/f......
  • pysdl2 的使用说明
    PySDL2是一个基于SDL2库的Python绑定,提供了许多组件来创建2D游戏和应用程序。以下是PySDL2中最常用的组件及其示例:1.sdl2.extsdl2.ext组件是PySDL2中最常用的扩展组件之一,提供了许多实用工具和类,用于创建2D游戏和应用程序。示例:```pythonimportsdl2.ext#......
  • 使用递归完成RBAC
     先使用ling查询将每个角色下的权限进行查询其次调用并返回这个GetFor方法,第一个参数是当前角色下的权限,第二个是权限的父ID顶级为0,GetFor方法是查询当前list集合用Printid作为条件,然后返回类型是一对多的样式所以创建dto进行赋值,然后那个集合需要反复调用这个方法来查询这......
  • 使用 go-conntrack 包来实现 conntrack 会话的创建和删除
    packagemainimport("fmt""time""github.com/florianl/go-conntrack")funcmain(){//创建conntrack客户端client,err:=conntrack.Dial(nil)iferr!=nil{panic(err)}deferclient......
  • Json使用toString
    Json的使用:1.对象转Json {"":"",“”:""}2.数组转Json [{"":"",“”:""},{"":"",“”:""}]3.JSon转对象4.Json转数组fastjson是ali的,比较使用于SpringC、SpringB/***转json给前端**@par......
  • SASS界面编译工具——Koala的使用
    《SASS界面编译工具——Codekit的使用》一文中图解了"CodeKit"图形工具编译SASS项目。由于CodeKit是一款付费工具,而且只能在Mac中使用,因此国内众多SASS爱好者,或者初学者也就无法体验CodeKit工具编译SASS项目。幸运的是,有一款国产图形工具Koala和CodeKit功能极其类似,支持多个平台......
  • [法律授权] 我可以在自己的网站上使用那支影片吗? Youtube、Vimeo、Vine,Instgram...
    译者:陈丁宝编校:Li-Yi、Shufang 面对现实吧!现在网路上充斥着影片,没办法,人们就是喜欢影片,在未来两三年里,影片将占据全球消费者使用网路流量的百分之六十九。 从网路上截取影片放在自己的网站或部落格上,总是比自己制作一段影片来的容易多了,但这样是合法的吗?针对使用Youtube、......