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

机器学习 学习知识点

机器学习 学习知识点

  • 什么是消融实验(Ablation experiment)?
  • num_step与batch_size的区别
  • python glob.glob()函数认识
  • python的条件判断之is not、is not None、is None
  • tqdm介绍及常用方法
  • softmax 激活函数。
  • type_as(tesnor)
  • Python OpenCV cv2.imwrite()用法及代码示例
  • 详解 torch.max 函数

什么是消融实验(Ablation experiment)?

消融实验类似于之前学习实验方法中的控制变量法

在一个实验中,涉及到a,b,c三个部分,不知道那个部分对实验起到效果,如果想知道a部分对整个实验的作用,去掉a部分,从而知道a在实验中起到的效果。

num_step与batch_size的区别

举个例子,我有1000个人,每个人有12条记录,分别代表一个人过去12个月每个月花的钱。我训练模型时,发现一次性选1000个人训练内存会溢出,所以我一次给内存里加载100个人,那么我训练一轮模型就要加载10次数据。那么100就是batch size,12就是num step,1000乘12就是你所有的样本。

举个栗子:在自然语言处理中,一句话是由很多个词(假设一句话已经分词)组成;1.然后在训练的时候,把所有的句子截取为相同的长度,如果某一个句子长度大于长度L,则截断;如果句子长度小于L,则填充0,补充长度至L。2.如果训练的时候,每次迭代的时候只有一句话,那么梯度下降的时候,可能较为随意;但是如果整个数据集一起训练,一是训练时间较长,二是自然语言处理的时候数据量很大,会导致内存溢出等,所以一般是sample batch_size的句子做一次迭代。3.回到第一点,则每次输入的数据大小应该是 [batchsize, sequence_length]的矩阵,这里的sequencelength就是上文中提到的num_step。

python glob.glob()函数认识

glob()函数就像Linux中的find -name *.type一样,可以将某目录下所有跟通配符模式相同的文件放到一个列表中,有了这个函数,我们再想生成所有文件的列表就不需要使用for循环遍历目录了,直接使用glob.glob(path+pattern)的方式获取,
在这里插入图片描述
这个例子中,我们的目的是生成daisy中的所有图片的列表,该列表中可能出现的图片格式如extensions中列出的那样,执行结果如下所示
在这里插入图片描述

可以看到glob.glob(file_glob)的结果就是符合相应模式的文件列表,需要注意的一点是,该函数对大小写不敏感,.jpg与.JPG是一样的,在extensions中即便是格式一样,包含大小写,在循环过程中,函数并不区分这种情况,所以在书写时一定要注意不要写错,否则列表的长度会让你莫名其妙。

python的条件判断之is not、is not None、is None

is:是不是某种对象
None:在Python中是一个单例对象,一个特殊的常量:没有值、空值、值不存在
对于在判断条件中的对象值的判断,除了False外,None、0、数据为空[]、“”、{}、()都是False,即bool(None)、bool(0)、bool([])、bool(“”)、bool({})、bool(())的值均为false

综上,最佳实践如下:

if val:print('if val')
if not val:print('if not val')
if val is not None:print('if val is not None')
if val is None:print('if val is None')

1、val为None时:

if not val
if val is None

2、val为False时:

if not val
if val is not None

3、val为0时:

if not val
if val is not None

4、val为1时:

if val
if val is not None

5、val为[]空列表时:

if not val
if val is not None

6、val为[1,2]非空列表时:

if val
if val is not None

7、val为某具体对象时:

if val
if val is not None

tqdm介绍及常用方法

tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。
对可迭代对象用tqdm处理下,再去处理时,控制台就会显示进度条了。在我理解来就是tqdm就是一个装饰器,虽然网上查了没人这么说,但是应该就是一个装饰器的原理,这么理解是没问题的。
Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。
使用pip就可以安装。
tqdm(list)方法可以传入任意一种list,比如数组

from tqdm import tqdmfor i in tqdm(range(1000)):  #do somethingpass  

或者string的数组

for char in tqdm(["a", "b", "c", "d"]):#do somethingpass

效果:
image████████████████████████████████████████████████████████████████▍ | 930/992 [27:29<01:51, 1.79s/it]

softmax 激活函数。

在多分类任务中,最后通常使用 softmax 函数作为网络输出层的激活函数,softmax 函数可以对输出值作归一化,把所有的输出值转换为概率,所有的概率值加起来等于 1。在做分类的时候,概率值高的那个类别即为预测类别。

type_as(tesnor)

使用type_as(tesnor)将张量转换为给定类型的张量。
如果张量已经是正确的类型,则不会执行操作。具体操作方法如下:

self = torch.Tensor(3, 5)
tesnor = torch.IntTensor(2,3)
print self.type_as(tesnor)

Python OpenCV cv2.imwrite()用法及代码示例

OpenCV-Python是旨在解决计算机视觉问题的Python绑定库。cv2.imwrite()方法用于将图像保存到任何存储设备。这将根据指定的格式将图像保存在当前工作目录中。

  • 用法: cv2.imwrite(filename, image)

  • 参数:
    filename:代表文件名的字符串。文件名必须包含图像格式,例如.jpg,.png等。
    image:就是要保存的图像。

  • 返回值:如果成功保存图像,则返回true。

  • 示例:

# Python program to explain cv2.imwrite() method # importing cv2  
import cv2 # importing os module   
import os # Image path 
image_path = r'C:\Users\Rajnish\Desktop\GeeksforGeeks\geeks.png'# Image directory 
directory = r'C:\Users\Rajnish\Desktop\GeeksforGeeks'# Using cv2.imread() method 
# to read the image 
img = cv2.imread(image_path) # Change the current directory  
# to specified directory  
os.chdir(directory) # List files and directories   
# in 'C:/Users/Rajnish/Desktop/GeeksforGeeks'   
print("Before saving image:")   
print(os.listdir(directory))   # Filename 
filename = 'savedImage.jpg'# Using cv2.imwrite() method 
# Saving the image 
cv2.imwrite(filename, img) # List files and directories   
# in 'C:/Users / Rajnish / Desktop / GeeksforGeeks'   
print("After saving image:")   
print(os.listdir(directory)) print('Successfully saved')
  • 输出:
Before saving image:
['geeks.png']
After saving image:
['geeks.png', 'savedImage.jpg']
Successfully saved

详解 torch.max 函数

torch.max()
返回输入张量所有元素的最大值。

  • 参数: input (Tensor) – 输入张量

例子:

>>> a = torch.randn(1, 3)
>>> a0.4729 -0.2266 -0.2085
[torch.FloatTensor of size 1x3]>>> torch.max(a)
0.4729
torch.max(input, dim, max=None, max_indices=None) -> (Tensor, LongTensor)
返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引。

输出形状中,将dim维设定为1,其它与输入形状保持一致。

  • 参数:
    input (Tensor) – 输入张量
    dim (int) – 指定的维度
    max (Tensor, optional) – 结果张量,包含给定维度上的最大值
    max_indices (LongTensor, optional) – 结果张量,包含给定维度上每个最大值的位置索引

例子:

>> a = torch.randn(4, 4)
>> a0.0692  0.3142  1.2513 -0.5428
0.9288  0.8552 -0.2073  0.6409
1.0695 -0.0101 -2.4507 -1.2230
0.7426 -0.7666  0.4862 -0.6628
torch.FloatTensor of size 4x4]>>> torch.max(a, 1)
(1.25130.92881.06950.7426
[torch.FloatTensor of size 4x1]
,2000
[torch.LongTensor of size 4x1]
)
torch.max(input, other, out=None) → Tensor
返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引。 
即,( out_i=max(input_i,other_i) \)

输出形状中,将dim维设定为1,其它与输入形状保持一致。

  • 参数:
    input (Tensor) – 输入张量
    other (Tensor) – 输出张量
    out (Tensor, optional) – 结果张量

例子:

>>> a = torch.randn(4)
>>> a1.38690.3912
-0.8634
-0.5468
[torch.FloatTensor of size 4]>>> b = torch.randn(4)
>>> b1.0067
-0.80100.62580.3627
[torch.FloatTensor of size 4]>>> torch.max(a, b)1.38690.39120.62580.3627
[torch.FloatTensor of size 4]

http://www.mrgr.cn/news/82355.html

相关文章:

  • 计算机网络第五章 运输层
  • Docker入门常用命令总结
  • Git revert回滚
  • Java实现UDP与TCP应用程序
  • 网络安全之高防IP的实时监控精准防护
  • Leetcode731. 我的日程安排表 II
  • Spark-Streaming有状态计算
  • Qt之简易音视频播放器设计(十五)
  • JAVA-制作小游戏期末实训
  • 服务端错误的处理和web安全检测
  • 六年之约day5
  • 软件项目的灵魂拷问:“要做什么?”和“做成了什么?”
  • Win11电脑Cursor默认打开markdown文件,如何修改markdown文件默认打开方式为Typora?
  • 鸿蒙开发汇总
  • HarmonyNext 鸿蒙开发中,在H5 页面如何下载图片保存到媒体库。
  • 使用Diffusion Models进行图像超分辩重建
  • CodeBlocks编程-C语言学习总结
  • 通过blob请求后端导出文件
  • iperf3 测试云服务性能
  • 静态初始化块与非静态初始化块
  • 初学STM32 --- 外部SRAM
  • USB 中断传输的 PID 序列
  • golang后台框架总结
  • 【PostgreSQL】PG多实例部署
  • 算法题(23):只出现一次的数字
  • win32汇编环境,对话框中显示bmp图像文件