TensorBoard ,PIL 和 OpenCV 在深度学习中的应用
重要工具介绍
TensorBoard:
是一个TensorFlow提供的强大工具,用于可视化和理解深度学习模型的训练过程和结果。下面我将介绍TensorBoard的相关知识和使用方法。
TensorBoard 简介
TensorBoard是TensorFlow提供的一个可视化工具,用于:
1.可视化模型的图形结构(Graph Visualization)。
2.跟踪和可视化指标(metrics)如损失和准确率随时间的变化。
3.显示图像数据、音频数据和其他数据类型。
4.查看训练过程中生成的直方图、分布和统计信息等。
安装TensorBorad

or
pip install tensorboard
代码示例:
import torch
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
for i in range(100):writer.add_scalar("y=x**2",i**2,i)writer.close()

使用 TensorBoard
1. 设置 TensorBoard 回调
在TensorFlow中,你需要通过TensorBoard回调来记录数据,以便后续在TensorBoard中查看。通常在训练模型时设置TensorBoard回调。
示例代码如下:
import tensorflow as tf
from tensorflow.keras.callbacks import TensorBoard# 创建一个TensorBoard回调,指定日志存储的目录
tensorboard_callback = TensorBoard(log_dir="./logs")# 使用回调来训练你的模型
model.fit(x_train, y_train, epochs=10, callbacks=[tensorboard_callback])
在这个例子中,log_dir 参数指定了TensorBoard日志存储的目录路径,训练完成后,会在该目录下生成日志文件,用于后续的可视化。
2. 启动 TensorBoard
训练完成后,你可以通过命令行启动TensorBoard来可视化日志文件:
tensorboard --logdir=./logs
这将启动一个本地服务器,默认端口为6006(可以通过--port参数修改),你可以在浏览器中访问 http://localhost:6006(或者相应的端口)来查看TensorBoard的界面。
3. TensorBoard 页面功能
TensorBoard页面的功能包括:
Scalars(标量):用于显示指标随时间的变化,如损失和准确率。
Graphs(图形):展示模型的计算图,有助于理解模型结构和操作流程。
Distributions(分布) 和 Histograms(直方图):用于查看权重和梯度的分布和直方图,有助于调试和优化模型。
Images(图像) 和 Audio(音频):用于显示训练过程中产生的图像和音频数据。
Projector(投影仪):用于高维数据的降维可视化,如嵌入向量。
4. 高级功能
除了基本的使用外,TensorBoard还支持一些高级功能,如自定义可视化和在远程服务器上运行。你可以根据具体的需求和应用场景进一步探索这些功能。
通过正确设置TensorBoard回调和启动TensorBoard服务器,你可以轻松地监控和分析模型的训练过程和结果,从而做出更好的调整和决策。
OpenCV介绍:(Open Source Computer Vision Library)
是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉算法。下面是关于OpenCV的一些基本信息和其主要用途:
OpenCV 的基本信息:
开源性质:OpenCV 是一个开源项目,允许用户自由地使用、修改和分发其源代码。
跨平台:OpenCV 可以在多个平台上运行,包括Windows、Linux、Mac OS X、Android 等。
多语言支持:OpenCV 主要使用C++编写,但也提供了Python、Java等多种语言的接口。
丰富的功能:OpenCV 提供了丰富的图像处理和计算机视觉算法,涵盖了从基本的图像处理操作(如滤波、边缘检测、色彩空间转换等)到高级的计算机视觉任务(如目标检测、人脸识别、物体跟踪等)的各个方面。
OpenCV 的主要用途:
图像处理:
提供了大量的图像处理功能,例如:图像滤波、图像增强、几何变换(如旋转、缩放)、色彩空间转换、直方图均衡化等。
计算机视觉:
在计算机视觉领域,OpenCV 提供了许多算法和工具,如特征检测(SIFT、SURF等)、目标检测(Haar 级联检测器、深度学习模型)、物体跟踪、摄像头标定、立体视觉等。
机器学习集成:
OpenCV 与机器学习的集成能力较强,支持主流的机器学习库(如 TensorFlow、PyTorch),可以进行图像分类、图像分割、人脸识别等任务。
实时图像处理:
由于其高效的设计和实现,OpenCV 适合于实时图像处理和视频处理应用,例如实时物体检测、视频流处理、运动跟踪等。
教育和研究:
OpenCV 不仅在工业界广泛应用,还被广泛用于教育和研究领域,作为计算机视觉和图像处理的教学工具和研究平台。
总之,OpenCV 是一个功能强大且广泛应用于图像处理和计算机视觉领域的开源库,为开发者提供了丰富的工具和算法,帮助他们实现各种复杂的图像处理和计算机视觉任务。
PIL
是 Python Imaging Library 的缩写,是一个用于图像处理的 Python 库。它提供了许多方便的图像处理功能,包括打开、操作和保存多种图像文件格式(如JPEG、PNG、BMP等),以及基本的图像操作(如裁剪、调整大小、旋转等)和高级的图像处理技术(如滤波、图像增强、颜色转换等)。
主要特点和功能:
图像读写:
PIL 允许用户打开和保存多种常见的图像文件格式,使得用户可以轻松处理不同格式的图像数据。
基本图像操作:
包括图像的裁剪、调整大小、旋转、镜像等基本的几何变换和操作。
图像增强:
提供了各种图像增强技术,如锐化、模糊、边缘增强、颜色增强等,以改善图像质量或凸显特定特征。
色彩空间转换:
支持颜色空间的转换,如RGB到灰度、RGB到HSV等,方便用户进行颜色信息的分析和处理。
图像滤波:
提供了一系列的图像滤波器,如高斯滤波、中值滤波等,用于平滑图像或去除噪声。
图像合成和处理:
允许用户在图像上绘制文本、图形和其他图像,进行复杂的图像合成和处理操作。
支持批量处理:
可以轻松地批量处理图像文件,进行相同或类似的操作,提高处理效率。
跨平台:
PIL 可以在多个平台上运行,并且易于安装和使用,适合不同应用场景的图像处理需求。
注意事项:
PIL 目前维护较少,推荐使用其后续开发的 Pillow 库(PIL Fork),它在功能和性能上都有所增强,并且对 Python 3 的支持更好。
pytorch中较为重要的两个函数
dir():
能 让 我 们 知 道 工 具 箱 以 及 工 具 箱 (pytorch包)中 的 分 隔 区 有 什 么 东 西 。 (相当于打开包的作用)
help():
能 让 我 们 知 道 每 个 工 具 是 如 何 使 用 的 , 工 具 的 使 用 方 法 。(相当于说明书)
当你引入一个新模块时,你可以先用dir()查看模块中的内容,然后使用help()来深入了解特定函数或类的用法和功能。
代码示例1:
import numpy as np
print(dir(np))
help(np.arange)

加载数据
dataset:
提供一种数据去获取数据以及标签和编号,可以看到每个要获取的数据以及lable
dataloader:
为后面的网络提供不同的数据形式,对dataset里的数据进行打包操作,加载数据,告诉我们总共有多少数据
代码示例2:
import torch
from torch.utils.data import Dataset, DataLoader# 定义自定义的Dataset类
class CustomDataset(Dataset):def __init__(self, data, targets):self.data = dataself.targets = targetsdef __len__(self):return len(self.data)def __getitem__(self, index):x = self.data[index]y = self.targets[index]return x, y# 假设有一些数据和对应的标签
data = torch.randn(100, 3, 32, 32) # 100个3通道的32x32图像数据
targets = torch.randint(0, 10, (100,)) # 100个随机的0-9的整数标签# 创建自定义的Dataset实例
dataset = CustomDataset(data, targets)# 使用DataLoader加载数据
batch_size = 10
dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)# 迭代DataLoader获取数据
for batch_idx, (inputs, labels) in enumerate(dataloader):# 在这里可以对每个批次的数据进行操作,例如送入模型进行训练print(f'Batch {batch_idx}: Inputs shape {inputs.shape}, Labels shape {labels.shape}')
下面是运行结果
相关文章:
TensorBoard ,PIL 和 OpenCV 在深度学习中的应用
重要工具介绍 TensorBoard: 是一个TensorFlow提供的强大工具,用于可视化和理解深度学习模型的训练过程和结果。下面我将介绍TensorBoard的相关知识和使用方法。 TensorBoard 简介 TensorBoard是TensorFlow提供的一个可视化工具,用于&#x…...
【超音速 专利 CN117576413A】基于全连接网络分类模型的AI涂布抓边处理方法及系统
申请号CN202311568976.4公开号(公开)CN117576413A申请日2023.11.22申请人(公开)超音速人工智能科技股份有限公司发明人(公开)张俊峰(总); 杨培文(总); 沈俊羽…...
iPhone数据恢复篇:iPhone 数据恢复软件有哪些
问题:iPhone 15 最好的免费恢复软件是什么?我一直在寻找一个恢复程序来恢复从iPhone中意外删除的照片,联系人和消息,但是我有很多选择。 谷歌一下,你会发现许多付费或免费的iPhone数据恢复工具,声称它们可…...
Html5+Css3学习笔记
Html5 CSS3 一、概念 1.什么是html5 html: Hyper Text Markup Language ( 超文本标记语言) 文本:记事本 超文本: 文字、图片、音频、视频、动画等等(网页) html语言经过浏览器的编译显示成超文本 开发者使用5种浏览器…...
WPF学习(2) -- 样式基础
一、代码 <Window x:Class"学习.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/2008&…...
独家揭秘!五大内网穿透神器,访问你的私有服务
本文精心筛选了五款炙手可热的内网穿透工具,它们各怀绝技,无论您是企业用户、独立开发者,还是技术探索者,这篇文章都物有所值,废话不多说,主角们即将上场。 目录 1. 巴比达 - 安全至上的企业护航者 2. 花…...
Ubuntu 编译和运行ZLMediaKit
摘要 本文描述了如何在Ubuntu上构建ZLMediaKIt项目源码,以及如何体验其WebRTC推流和播放功能。 实验环境 操作系统版本:Ubuntu 22.04.3 LTS gcc版本:11.4.0 g版本:11.4.0 依赖库安装 #让ZLMediaKit媒体服务器具备WebRTC流转发…...
基于JavaSpringBoot+Vue+uniapp微信小程序校园宿舍管理系统设计与实现
基于JavaSpringBootVueuniapp微信小程序实现校园宿舍管理系统设计与实现 目录 第一章 绪论 1.1 研究背景 1.2 研究现状 1.3 研究内容 第二章 相关技术介绍 2.1 Java语言 2.2 HTML网页技术 2.3 MySQL数据库 2.4 Springboot 框架介绍 2.5 VueJS介绍 2.6 ElementUI介绍…...
Hive的基本操作(创建与修改)
必备知识 数据类型 基本类型 类型写法字符char, varchar, string✔整数tinyint, smallint, int✔, bigint✔小数float, double, numeric(m,n), decimal(m,n)✔布尔值boolean✔时间date✔, timestamp✔ 复杂类型(集合类型) 1、数组:array<T> 面向用户提供…...
Linux开发讲课37--- ARM的22个常用概念
1. ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器…...
7-1、2、3 IPFS介绍使用及浏览器交互(react+区块链实战)
7-1、2、3 IPFS介绍使用及浏览器交互(react区块链实战) 7-1 ipfs介绍7-2 IPFS-desktop使用7-3 reactipfs-api浏览器和ipfs交互 7-1 ipfs介绍 IPFS区块链上的文件系统 https://ipfs.io/ 这个网站本身是需要科学上网的 Ipfs是点对点的分布式系统 无限…...
CentOS 7 中出现 cannot open Packages database in /var/lib/rpm 错误
转载自:https://www.jianshu.com/p/423306f43e72 # 进入 rpmdb 所在目录 [roothostbase ~]# cd /var/lib/rpm [roothostbase rpm]# ls Basenames __db.001 __db.003 Group Name Packages Requirename Sigmd5 Conflictname __db.002 Dirnames Ins…...
【java深入学习第6章】深入解析Spring事件监听机制
在Spring框架中,事件监听机制是一个强大且灵活的功能,允许我们在应用程序中发布和监听事件。这种机制可以帮助我们实现松耦合的设计,使得不同模块之间的通信更加灵活和可维护。本文将详细介绍Spring的事件监听机制,并通过代码示例…...
Flask与Celery实现Python调度服务
文章目录 Flask与Celery实现Python调度服务一、前言1.组件2.场景说明3.环境 二、安装依赖1.安装Anaconda3.安装redis2.安装依赖包 三、具体实现1.目录结构2.业务流程3.配置文件4.Celery程序5.Flask程序6.测试脚本7.程序启动1)Windows开发调试2)Linux服务…...
Eureka应用场景和优势
Eureka是一款由Netflix开源的服务注册与发现框架,在微服务架构中扮演着至关重要的角色。以下是Eureka的应用场景和优势: Eureka的应用场景 Eureka主要应用于微服务架构中,特别是在大型、复杂的分布式系统中,用于管理和发现服务。…...
prompt第三讲-PromptTemplate
文章目录 前提回顾PromptTemplateprompt 模板定义以f-string渲染格式以mustache渲染格式以jinja2渲染格式直接实例化PromptTemplatePromptTemplate核心变量 prompt value生成invokeformat_prompt(不建议使用)format(不建议使用) batchstreamainvoke PromptTemplate核心方法part…...
卷积神经网络图像识别车辆类型
卷积神经网络图像识别车辆类型 1、图像 自行车: 汽车: 摩托车: 2、数据集目录 3、流程 1、获取数据,把图像转成矩阵,并随机划分训练集、测试集 2、把标签转为数值,将标签向量转换为二值矩阵 3、图像数据归一化,0-1之间的值 4、构造卷积神经网络 5、设置图像输入…...
【接口设计】用 Swagger 实现接口文档
用 Swagger 实现接口文档 1.配置 Swagger1.1 添加 Swagger 依赖1.2 创建 Swagger 配置类 2.编写接口文档 在项目开发中,一般都是由前后端工程师共同定义接口,编写接口文档,之后大家根据这个接口文档进行开发、维护。为了便于编写和维护稳定&a…...
TensorFlow系列:第四讲:MobileNetV2实战
一. 加载数据集 编写工具类,实现数据集的加载 import keras""" 加载数据集工具类 """class DatasetLoader:def __init__(self, path_url, image_size(224, 224), batch_size32, class_modecategorical):self.path_url path_urlself…...
Redis+Caffeine 实现两级缓存实战
RedisCaffeine 实现两级缓存 背景 事情的开始是这样的,前段时间接了个需求,给公司的商城官网提供一个查询预计送达时间的接口。接口很简单,根据请求传的城市仓库发货时间查询快递的预计送达时间。因为商城下单就会调用这个接口ÿ…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...

