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

Python基础及函数解读(深度学习)

一、语句

1.加注释

单行注释:

(1)在代码上面加注释: # 后面跟一个空格

(2)在代码后面加注释:和代码相距两个空格, # 后面再跟一个空格

多行注释:按住shift + 点击三次"(英文状态下)

2.with...as...

with as 语句操作上下文管理器(context manager),它能够帮助我们自动分配并且释放资源。

二、导入

导入模块有两种常用方法 :import 语句和 from … import 语句

import XXX:导入模块,后调用此模块的ZZ方法时格式为XXX.ZZ()

from XXX import ZZ:ZZ为模块 XXX里的方法,后调用此模块中的ZZ方法时格式为ZZ()

(1条消息) 坑啊!为什么不建议用 from xxx import *!_菜鸟学Python的博客-CSDN博客

1.from __future__ import print_function

该语句是python2的概念,那么python3对于python2就是future了,也就是说,在python2的环境下,超前使用python3的print函数

2.import numpy as np

利用命令“import numpy as np”将numpy库取别名为“np”

3.from tensorboardX import SummaryWriter

是神经网络中的可视化工具

Pytorch中TensorBoard及torchsummary的使用详解 | w3c笔记 (w3cschool.cn)

4.import os

import os python环境下对文件,文件夹执行操作的一个模块

import os.path获取文件的属性

5.import torch.nn.functional as F

包含 torch.nn 库中所有函数

同时包含大量 loss 和 activation function

6.import argparse

(1条消息) argparse.ArgumentParser()用法解析_quantLearner的博客-CSDN博客_argparse.argumentparser() 参数

用来设置命令行参数,参数和超参数的区别:

超参数(Hyperparameter) - HuZihu - 博客园 (cnblogs.com)

三、一般函数解读

1.softplus()激活函数

softplus的数学表达式以及与Relu的函数对比,相当于Relu的平滑

2.forward()

将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。

3.os.path.join

用于路径拼接,注意/的运用

(2条消息) os.path.join()函数用法详解_swan777的博客-CSDN博客

import os
path='C:/yyy/yyy_data/'
print(os.path.join(path,'/abc'))
print(os.path.join(path,'abc'))
结果
C:/abc
C:/yyy/yyy_data/abc

4.shutil.rmtree()

递归地删除文件夹以及里面的文件

5.random.randint(start, stop)

返回指定范围内的整数

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

6.enumerate()

四、torch函数解读

1.torch.tensor()

用来存储和变换数据

2.torch.sum()

对输入的tensor数据的某一维度求和,有两种方法,dim=0纵向求和,dim=1横向求和

(1条消息) torch.sum()、np.sum()和sum()简要介绍_np.sum torch.sum_两分先生的博客-CSDN博客

import torch
import numpy as npa = torch.tensor([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 2, 3], [4, 5, 6]])
c = [1, 2, 3, 4, 5, 6]print(torch.sum(a))
print(torch.sum(a, dim=0))
print(torch.sum(a, dim=1))
print(torch.sum(a, dim=1, keepdim=True))print(np.sum(b))
print(np.sum(b, axis=0))
print(np.sum(b, axis=1))
print(np.sum(b, axis=1, keepdims=True))print(sum(c))
print(sum(c, 1))
print(sum(c, 2))结果
tensor(21)
tensor([5, 7, 9])
tensor([ 6, 15])
tensor([[ 6],[15]])
21
[5 7 9]
[ 6 15]
[[ 6][15]]
21
22
23

3.torch.mul(a, b)

矩阵a和b对应位相乘,a和b的维度必须相等,比如a的维度是(1, 2),b的维度是(1, 2),返回的仍是(1, 2)的矩阵;

(1条消息) Pytorch矩阵乘法之torch.mul() 、 torch.mm() 及torch.matmul()的区别_irober的博客-CSDN博客

a = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(a[:, :])#获取矩阵的全部值
l_x = a[:, :].mul(a[:, :])#矩阵对应位相乘
print(l_x)结果
tensor([[1, 2, 3],[4, 5, 6]])
tensor([[ 1,  4,  9],[16, 25, 36]])

4.torch.zeros()

返回一个由标量值0填充的张量

>>> torch.zeros(2, 3)
tensor([[ 0.,  0.,  0.],[ 0.,  0.,  0.]])>>> torch.zeros(5)
tensor([ 0.,  0.,  0.,  0.,  0.])

5.torch.device()

代表将torch.tensor分配到的设备的对象(简单点说,就是分配到你的CPU还是GPU上,以及哪块GPU上)

6.lambda

函数的简化,可以直接赋给变量并调用

细说Python的lambda函数用法,建议收藏 - 知乎 (zhihu.com)

import torch
c=lambda x,y,z:x*y*z
print(c(2,3,4))
结果
24

7.torch.utils.data.DataLoader()

将数据加载到模型

(2条消息) PyTorch学习笔记(6)——DataLoader源代码剖析_sooner高的博客-CSDN博客_woker_init_fn

8.Tensorboard:SummaryWriter类

可以看训练过程中loss的变化。之前用于Tensorflow框架,自Pytorch1.1之后,Pytorch也加了这个功能

writer1=SummaryWriter('runs/exp')#将loss值存储到此路径中

Pytorch深度学习实战教程(四):必知必会的炼丹法宝 - 知乎 (zhihu.com)

9.torch.optim.SGD()

随机梯度下降算法,parameters为待优化参数的iterable(w和b的迭代),lr为学习率

optim.SGD(pnet.parameters(), lr=opt.lr, momentum=opt.momentum)

(3条消息) torch.optim.SGD()_echo_gou的博客-CSDN博客_torch.optim.sgd

10.torch.optim.lr_scheduler

torch.optim.lr_scheduler模块提供了一些根据epoch训练次数来调整学习率(learning rate)的方法。一般情况下我们会设置随着epoch的增大而逐渐减小学习率从而达到更好的训练效果。

常见的调整策略:

史上最全学习率调整策略lr_scheduler - cwpeng - 博客园 (cnblogs.com)

http://www.lryc.cn/news/137.html

相关文章:

  • 车道线检测-PolyLaneNet 论文学习笔记
  • GO——接口(下)
  • 计算机网络之http02| HTTPS HTTP1.1的优化
  • 基于matlab使用神经网络清除海杂波
  • 每天10个前端小知识 【Day 8】
  • 【项目精选】基于Java的敬老院管理系统的设计和实现
  • Spark SQL 介绍
  • 升级到 CDP 后Hive on Tez 性能调整和故障排除指南
  • 理解HDFS工作流程与机制,看这篇文章就够了
  • Intel处理器分页机制
  • Linux常用命令
  • 基于STM32设计的音乐播放器
  • 微服务开发
  • 【(C语言)数据结构奋斗100天】二叉树(上)
  • Java 验证二叉搜索树
  • C/C++单项选择题标准化考试系统[2023-02-09]
  • 爱了爱了,这些顶级的 Python 工具包太棒了
  • 【Explain详解与索引优化最佳实践】
  • 【树和二叉树】数据结构二叉树和树的概念认识
  • 通达信收费接口查询可申购新股c++源码分享
  • 【C#设计模式】创建型设计模式 (单例,工厂)。
  • Ubuntu 22.04 LTS 入门安装配置优化、开发软件安装一条龙
  • 第五十章 动态规划——数位DP模型
  • 02- pandas 数据库 (机器学习)
  • 学Qt想系统的学习,看哪本书?
  • 2023年网络安全比赛--跨站脚本攻击②中职组(超详细)
  • 网络安全实验室4.注入关
  • 领域搜索算法之经典The Lin-Kernighan algorithm
  • 深度学习基础-机器学习基本原理
  • C语言操作符详解 一针见血!