当前位置: 首页 > news >正文

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种浏览器&#xf…...

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&…...

独家揭秘!五大内网穿透神器,访问你的私有服务

本文精心筛选了五款炙手可热的内网穿透工具&#xff0c;它们各怀绝技&#xff0c;无论您是企业用户、独立开发者&#xff0c;还是技术探索者&#xff0c;这篇文章都物有所值&#xff0c;废话不多说&#xff0c;主角们即将上场。 目录 1. 巴比达 - 安全至上的企业护航者 2. 花…...

Ubuntu 编译和运行ZLMediaKit

摘要 本文描述了如何在Ubuntu上构建ZLMediaKIt项目源码&#xff0c;以及如何体验其WebRTC推流和播放功能。 实验环境 操作系统版本&#xff1a;Ubuntu 22.04.3 LTS gcc版本&#xff1a;11.4.0 g版本&#xff1a;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、数组&#xff1a;array<T> 面向用户提供…...

Linux开发讲课37--- ARM的22个常用概念

1. ARM中一些常见英文缩写解释 MSB&#xff1a;最高有效位&#xff1b; LSB&#xff1a;最低有效位&#xff1b; AHB&#xff1a;先进的高性能总线&#xff1b; VPB&#xff1a;连接片内外设功能的VLSI外设总线&#xff1b; EMC&#xff1a;外部存储器…...

7-1、2、3 IPFS介绍使用及浏览器交互(react+区块链实战)

7-1、2、3 IPFS介绍使用及浏览器交互&#xff08;react区块链实战&#xff09; 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框架中&#xff0c;事件监听机制是一个强大且灵活的功能&#xff0c;允许我们在应用程序中发布和监听事件。这种机制可以帮助我们实现松耦合的设计&#xff0c;使得不同模块之间的通信更加灵活和可维护。本文将详细介绍Spring的事件监听机制&#xff0c;并通过代码示例…...

Flask与Celery实现Python调度服务

文章目录 Flask与Celery实现Python调度服务一、前言1.组件2.场景说明3.环境 二、安装依赖1.安装Anaconda3.安装redis2.安装依赖包 三、具体实现1.目录结构2.业务流程3.配置文件4.Celery程序5.Flask程序6.测试脚本7.程序启动1&#xff09;Windows开发调试2&#xff09;Linux服务…...

Eureka应用场景和优势

Eureka是一款由Netflix开源的服务注册与发现框架&#xff0c;在微服务架构中扮演着至关重要的角色。以下是Eureka的应用场景和优势&#xff1a; Eureka的应用场景 Eureka主要应用于微服务架构中&#xff0c;特别是在大型、复杂的分布式系统中&#xff0c;用于管理和发现服务。…...

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.编写接口文档 在项目开发中&#xff0c;一般都是由前后端工程师共同定义接口&#xff0c;编写接口文档&#xff0c;之后大家根据这个接口文档进行开发、维护。为了便于编写和维护稳定&a…...

TensorFlow系列:第四讲:MobileNetV2实战

一. 加载数据集 编写工具类&#xff0c;实现数据集的加载 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 实现两级缓存 背景 ​ 事情的开始是这样的&#xff0c;前段时间接了个需求&#xff0c;给公司的商城官网提供一个查询预计送达时间的接口。接口很简单&#xff0c;根据请求传的城市仓库发货时间查询快递的预计送达时间。因为商城下单就会调用这个接口&#xff…...

SpringBoot:SpringBoot中如何实现对Http接口进行监控

一、前言 Spring Boot Actuator是Spring Boot提供的一个模块&#xff0c;用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点&#xff08;endpoints&#xff09;&#xff0c;用于获取应用程序的健康状态、性能指标、配置信息等&#xff0c;并支持通过 HTTP …...

STM32-I2C硬件外设

本博文建议与我上一篇I2C 通信协议​​​​​​共同理解 合成一套关于I2C软硬件体系 STM32内部集成了硬件I2C收发电路&#xff0c;可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能&#xff0c;减轻CPU的负担 特点&#xff1a; 多主机功能&#x…...

暑假第一次作业

第一步&#xff1a;给R1,R2,R3,R4配IP [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 [R1-Serial4/0/0]ip address 15.0.0.1 24 [R2-GigabitEthernet0/0/0]ip address 192.168.2.1 24 [R2-Serial4/0/0]ip address 25.0.0.1 24 [R3-GigabitEthernet0/0/0]ip address 192.…...

【算法专题】快速排序

1. 颜色分类 75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 依据题意&#xff0c;我们需要把只包含0、1、2的数组划分为三个部分&#xff0c;事实上&#xff0c;在我们前面学习过的【算法专题】双指针算法-CSDN博客中&#xff0c;有一道题叫做移动零&#xff0c;题目要…...

debian 12 PXE Server 批量部署系统

pxe server 前言 PXE&#xff08;Preboot eXecution Environment&#xff0c;预启动执行环境&#xff09;是一种网络启动协议&#xff0c;允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器&#xff0c;它提供了启动镜像和引导加载程序&#xff0c;…...

【Pytorch】RNN for Image Classification

文章目录 1 RNN 的定义2 RNN 输入 input, h_03 RNN 输出 output, h_n4 多层5 小试牛刀 学习参考来自 pytorch中nn.RNN()总结RNN for Image Classification(RNN图片分类–MNIST数据集)pytorch使用-nn.RNNBuilding RNNs is Fun with PyTorch and Google Colab 1 RNN 的定义 nn.…...

基于Java的飞机大战游戏的设计与实现论文

点击下载源码 基于Java的飞机大战游戏的设计与实现 摘 要 现如今&#xff0c;随着智能手机的兴起与普及&#xff0c;加上4G&#xff08;the 4th Generation mobile communication &#xff0c;第四代移动通信技术&#xff09;网络的深入&#xff0c;越来越多的IT行业开始向手机…...

初识影刀:EXCEL根据部门筛选低值易耗品

第一次知道这个办公自动化的软件还是在招聘网站上&#xff0c;了解之后发现对于办公中重复性的工作还是挺有帮助的&#xff0c;特别是那些操作非EXCEL的重复性工作&#xff0c;当然用在EXCEL上更加方便&#xff0c;有些操作比写VBA便捷。 下面就是一个了解基本操作后&#xff…...

nginx的四层负载均衡实战

目录 1 环境准备 1.1 mysql 部署 1.2 nginx 部署 1.3 关闭防火墙和selinux 2 nginx配置 2.1 修改nginx主配置文件 2.2 创建stream配置文件 2.3 重启nginx 3 测试四层代理是否轮循成功 3.1 远程链接通过代理服务器访问 3.2 动图演示 4 四层反向代理算法介绍 4.1 轮询&#xff0…...

中职网络安全B模块Cenots6.8数据库

任务环境说明&#xff1a; ✓ 服务器场景&#xff1a;CentOS6.8&#xff08;开放链接&#xff09; ✓ 用户名&#xff1a;root&#xff1b;密码&#xff1a;123456 进入虚拟机操作系统&#xff1a;CentOS 6.8&#xff0c;登陆数据库&#xff08;用户名&#xff1a;root&#x…...