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}')

下面是运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

尚品汇-(十七)

目录: (1)获取价格信息 (2)获取销售信息 前面的表: (1)获取价格信息 继续编写接口:ManagerService /*** 获取sku价格* param skuId* return*/ BigDecimal getSkuPrice…

『 Linux 』匿名管道应用 - 简易进程池

文章目录 池化技术进程池框架及基本思路进程的描述组织管道通信建立的潜在问题 任务的描述与组织子进程读取管道信息控制子进程进程退出及资源回收 池化技术 池化技术是一种编程技巧,一般用于优化资源的分配与复用; 当一种资源需要被使用时这意味着这个资源可能会被进行多次使…

mqtt.fx连接阿里云

本文主要是记述一下如何使用mqtt.fx连接在阿里云上创建好的MQTT服务。 1 根据MQTT填写对应端口即可 找到设备信息,里面有MQTT连接参数 2 使用物模型通信Topic,注意这里的post说设备上报,那也就是意味着云端订阅post;set则意味着设…

【轻松拿捏】Java-final关键字(面试)

目录 1. 定义和基本用法 回答要点: 示例回答: 2. final 变量 回答要点: 示例回答: 3. final 方法 回答要点: 示例回答: 4. final 类 回答要点: 示例回答: 5. final 关键…

搭建hadoop+spark完全分布式集群环境

目录 一、集群规划 二、更改主机名 三、建立主机名和ip的映射 四、关闭防火墙(master,slave1,slave2) 五、配置ssh免密码登录 六、安装JDK 七、hadoop之hdfs安装与配置 1)解压Hadoop 2)修改hadoop-env.sh 3)修改 core-site.xml 4)修改hdfs-site.xml 5) 修改s…

【进阶篇-Day9:JAVA中单列集合Collection、List、ArrayList、LinkedList的介绍】

目录 1、集合的介绍1.1 概念1.2 集合的分类 2、单列集合:Collection2.1 Collection的使用2.2 集合的通用遍历方式2.2.1 迭代器遍历:(1)例子:(2)迭代器遍历的原理:(3&…

排序——交换排序

在上篇文章我们详细介绍了排序的概念与插入排序,大家可以通过下面这个链接去看: 排序的概念及插入排序 这篇文章就介绍一下一种排序方式:交换排序。 一,交换排序 基本思想:两两比较,如果发生逆序则交换…

jenkins系列-09.jpom构建java docker harbor

本地先启动jpom server agent: /Users/jelex/Documents/work/jpom-2.10.40/server-2.10.40-release/bin jelexjelexxudeMacBook-Pro bin % sh Server.sh start/Users/jelex/Documents/work/jpom-2.10.40/agent-2.10.40-release/bin jelexjelexxudeMacBook-Pro bin % ./Agent.…

达梦数据库的系统视图v$sessions

达梦数据库的系统视图v$sessions 达梦数据库(DM Database)是中国的一款国产数据库管理系统,它提供了类似于Oracle的系统视图来监控和管理数据库。V$SESSIONS 是达梦数据库中的一个系统视图,用于显示当前数据库会话的信息。 以下…

全自主巡航无人机项目思路:STM32/PX4 + ROS + AI 实现从传感融合到智能规划的端到端解决方案

1. 项目概述 本项目旨在设计并实现一款高度自主的自动巡航无人机系统。该系统能够按照预设路径自主飞行,完成各种巡航任务,如电力巡线、森林防火、边境巡逻和灾害监测等。 1.1 系统特点 基于STM32F4和PX4的高性能嵌入式飞控系统多传感器融合技术实现精…

MYSQL--第八次作业

MYSQL–第八次作业 一、备份与恢复 环境搭建: CREATE DATABASE booksDB; use booksDB;CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL );CREATE TABLE authors ( auth_id INT NOT NULL PRI…

geoServer在windows中下载安装部署详细操作教程

这里写目录标题 1.安装环境检查2.下载安装包(1)进入下载地址:(2)以下载最新版为例,点击“Stable GeoServer”下载(3)安装有两种方式(4)我这里选择下载war包 3…

python作业三

1.使用requests模块获取这个json文件http://java-api.super-yx.com/html/hello.json 2.将获取到的json转为dict 3.将dict保存为hello.json文件 4.用io流写一个copy(src,dst)函数,复制hello.json到C:\hello.json import json import shutilimport requests #使用requests模块获…

Qt MV架构-视图类

一、基本概念 在MV架构中,视图包含了模型中的数据项,并将它们呈现给用户。数据项的表示方法,可能和数据项在存储时用的数据结构完全不同。 这种内容与表现分离之所以能够实现,是因为使用了 QAbstractItemModel提供的一个标准模…

基于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介绍…

基于大语言模型(LLM)的合成数据生成、策展和评估的综述

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

【JVM实战篇】内存调优:内存泄露危害+内存监控工具介绍+内存泄露原因介绍

文章目录 内存调优内存溢出和内存泄漏内存泄露带来什么问题内存泄露案例演示内存泄漏的常见场景场景一场景二 解决内存溢出的方法常用内存监控工具Top命令优缺点 VisualVM软件、插件优缺点监控本地Java进程监控服务器的Java进程(生产环境不推荐使用) Art…

【图解大数据技术】流式计算:Spark Streaming、Flink

【图解大数据技术】流式计算:Spark Streaming、Flink 批处理 VS 流式计算Spark StreamingFlinkFlink简介Flink入门案例Streaming Dataflow Flink架构Flink任务调度与执行task slot 和 task EventTime、Windows、WatermarksEventTimeWindowsWatermarks 批处理 VS 流式…

如何查找电脑的MAC地址

一. 什么是mac地址? mac地址本质上帮助我们连接到我们遇到的大多数本地网络。每个网络适配器通常由网络接口​​控制器(NIC) 制造商分配一个唯一的 mac 地址。 二. 如何查找mac地址 1.点击网络和Internet设置 2.点击WLAN点击硬件属性 3.即可查看mac地址

智慧城市3d数据可视化系统提升信息汇报的时效和精准度

在信息大爆炸的时代,数据的力量无可估量。而如何将这些数据以直观、高效的方式呈现出来,成为了一个亟待解决的问题。为此,我们推出了全新的3D可视化数据大屏系统,让数据“跃然屏上”,助力您洞察先机,决胜千…