深度学习Pytorch(二)

深度学习Pytorch(二)

前言:关于Pycharm终端显示PS而不显示虚拟环境名

解决办法:

  1. 打开Pycharm的设置(File——>setting),找到Tools,点击Terminal
  2. 可以看到Shell path处给的路径是powershell.exe,所以终端才会一直显示PS
  3. 将此处路径改为 C:\Windows\system32\cmd.exe,一般路径都是这个,改好之后点击OK即可
  4. 关掉设置后重新打开终端,就可以看到自己的虚拟环境名了

一、Python文件、Python控制台、Jupyter的对比

  1. 代码是以块为一个整体运行的话:Python文件:块是所有行的代码​ 优点:通用,传播方便,适用于大型项目​ 缺点:需要从头运行Python控制台:以任意行为块运行​ 优点:显示每个变量属性​ 缺点:不利于代码阅读及修改Jupyter:以任意行为块运行的​ 优点:利于代码阅读及修改​ 缺点:环境需要配置

二、Pytorch加载数据

Dataset类:

提供一种方式去获取数据及其label,它的功能是如何获取每一个数据及其label,并告诉我们总共有多少的数据

Dataloader类:

为后面的网络提供不同的数据形式

  1. 在Pycharm中创建一个read_data的Python文件使用以上代码可以查看Dataset类的用法
  2. 下面是读取数据的具体代码**注意:**这里采用的是以文件夹名来作为标签名的情况,如果标签名比较复杂,还有一种方式即采用两个文件夹,一个文件夹里放图片,另一个文件夹放对应名称的txt文件,每个txt文件里存有标签名。

三、TensorBoard的使用(add_scalar的使用)

请先看前言!

进入Pytorch环境后安装tensorboard:

pip install tensorboard

新建一个Python文件:

from torch.utils.tensorboard import SummaryWriter
writer=SummaryWriter("logs")   #存储到logs文件夹下

# writer.add_image()
# y=x
for i in range(100):
    writer.add_scalar("y=x",i,i)    #第一个参数是标题,第二个参数是y轴,第三个参数是x轴
writer.close()

run以下以上代码后会生成一个logs文件夹,里面有我们的事件文件!

之后进入Pycharm终端,确保在Pytorch环境中,输入以下命令:

tensorboard --logdir=logs --port=6007   #logdir为事件文件所在文件夹名,port指定端口

会出现一个网址,进入即可得到咱们的scalar!

**注意:**每向wirter写入一个新的事件时,会保留上一次的事件,所以当我们需要变换函数的时候,一种方法是将logs文件夹中的事件文件全部删除,重新run!

四、TensorBoard的使用(add_image的使用)

**(后面学习用,这次不用)**进入Pytorch环境安装opencv:

pip install opencv-python

from PIL import Image
image_path="dataset/train/ants/0013035.jpg"
img=Image.open(image_path)
print(type(img))

以上使用PIL获取图片,得到的图片格式是<class 'PIL.JpegImagePlugin.JpegImageFile'>

下面是add_image的三个参数,可以看到第二个参数只能使用三个类型,所以我们使用PIL的方式无法满足要求,但其中的numpy类型,可利用Opencv读取照片获得numpy型图片数据。

Args:
            tag (str): Data identifier
            img_tensor (torch.Tensor, numpy.ndarray, or string/blobname): Image data
            global_step (int): Global step value to record

此次不使用opencv获取图片,我们使用numpy.array(),对PIL图片进行转换

import numpy as np
img_array=np.array(img)
print(type(img_array))

结果是<class 'numpy.ndarray'>,符合要求

综上代码如下:

import numpy as np
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
writer=SummaryWriter("logs")   #存储到logs文件夹下

image_path="dataset/train/ants/69639610_95e0de17aa.jpg"
img_PIL=Image.open(image_path)    #得到PIL格式的图片
img_array=np.array(img_PIL)      #将PIL格式的图片转换为numpy格式的
print(type(img_array))
print(img_array.shape)
#从PIL到numpy,需要在add_image()中指定shape中每一个数字/维表示的含义
writer.add_image("train",img_array,1,dataformats='HWC')  #dataformats参数为高度H,宽度W,通道C,不清楚图片的类型就用图片.shape查看
#第二个参数为指定步数
# y=x
for i in range(100):
    writer.add_scalar("y=x",i,i)    #第一个参数是标题,第二个参数是y轴,第三个参数是x轴
writer.close()

run后进入Pycharm终端,确保在Pytorch环境中,输入以下命令:

tensorboard --logdir=logs --port=6007   #logdir为事件文件所在文件夹名,port指定端口

打开网页即可!

更多内容请关注我的博客:bgemini.com

全部评论
多谢大佬的学习分享
点赞 回复 分享
发布于 2023-03-11 13:57 江苏
今天也狠狠学习了
点赞 回复 分享
发布于 2023-03-11 13:27 吉林

相关推荐

2025-12-12 19:01
南京航空航天大学 C++
秋招没咋投,准备&nbsp;wxg&nbsp;转正之后摆烂了。结果不堪字节&nbsp;HR&nbsp;的骚扰还是面了一下字节。之前想去字节的时候怎么面都挂。现在想着随便面一下结果三面技术面都意外顺利还有加面。十月中旬字节发了意向,wxg&nbsp;转正结果无响应。十月底字节拉了保温群,wxg&nbsp;口头通过,系统显示考核中。十一月初和字节&nbsp;ld&nbsp;交流之后得知&nbsp;base&nbsp;居然能选海外,甚至能小&nbsp;wlb&nbsp;一下,wxg&nbsp;无响应无人联系。十一月中旬把字节&nbsp;base&nbsp;转到了海外,wxg&nbsp;流程灰了,一问超时忘处理了,过两天又变考核中了。十一月下旬字节换了海外&nbsp;HR&nbsp;对接,问了期望薪资,wxg&nbsp;考核终于显示通过,无&nbsp;HR&nbsp;保温,无其他保温。十一月底给字节报了个天价,想吓吓他们,同时告诉微信字节要开了,微信无响应。同样十一月底字节&nbsp;HR&nbsp;告诉我确实给不到那么高,但是能拿期权补上,问能不能接受。微信无响应。同样十一月底字节&nbsp;HR&nbsp;告知了具体方案,符合预期。&nbsp;微信无响应。十二月上旬催&nbsp;wxg&nbsp;不开我就盲拒了,wxg&nbsp;HR&nbsp;火急火燎的打电话问情况,问期望。我给了一个不算夸张的总包数字,因为今年市场在涨,过了三天还不联系我,我再催,约时间下午打电话,非得在我给出的数字上压下去几万,微信又不差这点,为什么不能满足我,让我没有拒绝的理由呢?一番纠结抗争,求稳还是追求挑战,最终选择接受迎接新的挑战,因为堂吉诃德永远不会停下脚步!回想起来,在&nbsp;wxg&nbsp;谈薪的阶段,我认为并没有给予我一定的重视,即使&nbsp;HR&nbsp;表示我在实习期间的表现和之前的面评都很靠前。也没有感觉到想要争取我,虽然我表示拒了&nbsp;offer&nbsp;之后要给我加面委定&nbsp;t6&nbsp;再涨,但我三个月没面试让我面面委那就是白给,还是算了。有缘再见了我亲爱的&nbsp;wxg,再见了曾经的梦中情厂,再见亲爱的&nbsp;mt,再见亲爱的朋友们。也再见,北京的一切。我想润了。秋招结束,卸载牛客,下一个三年,下一个五年,下一个十年后再来看看。
面试中的大熊猫爱吃薯...:我嫉妒得狗眼通红
点赞 评论 收藏
分享
2025-12-09 16:37
西北大学 前端工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务