学习笔记2024/4/17

  • 共享代理,打开允许局域网

    • 打开clash的allow LAN

    • 查看mac的以太网的ip地址(mac在局域网中的ip)

    • 修改下面命令中的ip,粘贴到服务器的终端中即可

    • 终端是否代理

      curl ipinfo.io
      
export https_proxy=http://10.15.223.121:7890;
export http_proxy=http://10.15.223.121:7890;
export all_proxy=socks5://10.15.223.121:7890;
  • bin加载,放在最开始,优先加载
export PATH=/home/user-ana/software/git-2.42/bin:$PATH
  • 查看大小
du -sh 目录的路径
  • venv激活环境,进入其中的bin目录
source activate
  • Pycharm 缩进

​ 同时按住 Shift + Tab 键

  • ​ 删除文件夹
rm -rf folder
  • 查看端口占用
lsof -i tcp:port
  • 端口转发
ssh -L  127.0.0.1:16006 : 127.0.0.1:6006 user-ana@10.255.248.48

ssh -L  16006 : 127.0.0.1:6006 user-ana@10.255.248.48
  • pytorch下载

官网

# CUDA 11.7
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia

#
# CUDA 11.7
conda install pytorch==2.0.1 torchvision==0.15.2 pytorch-cuda=11.7 -c pytorch -c nvidia
sudo adduser  tom
sudo useradd -m tom
# conda 更新
WARNING: A newer version of conda exists. <==              current version: 23.3.1                                       latest version: 23.10.0                                       
Please update conda by running                                 	conda update -n base -c conda-forge conda                    
Or to minimize the number of packages updated during conda update use                                                     	conda install conda=23.10.0 
  • 设置超时上限时间
conda config --set remote_read_timeout_secs 600.0
  • 删除环境
conda remove -n env_name --all
  • $前面消失,shell的问题,切换为bash就行
  • 用户无法删除,被进程占用,根本原因在于切换回其他用户之后,要被删除的用户还被某个进程占用,手动关闭终端后,重新打开

  • 修改用户的附加组
sudo usermod -G wheel
# 切换用户
su -l user
  • 取消自动激活base
conda config --set auto_activate_base false
Ctrl+u 删除命令行开始至光标处

Ctrl+k 删除光标至命令行结尾

Ctrl+a 光标移到最前

Ctrl+e 光标移到最后
  • 查看linux版本
hostnamectl
  • 查看虚拟环境
conda info --envs
  • 导出环境
conda env export > xxx.yaml
  • 根据已有环境创建
conda env create -f xxx.yaml
  • conda 更换源,清华源
# 添加Anaconda镜像
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
auto_activate_base: false
show_channel_urls: true

# --add 每一次add添加的源优先级变得最高

  • .condarc 文件中直接修改源

  • 查看源

conda config --show channels
  • 查看所有已创建的虚拟环境
conda env list
  • 查看命令的位置
# 显示位置和帮助手册
whereis command_name
# 只显示位置
which command_name
pip show packname #显示包的安装位置等信息

损失函数-针对单个训练样本

代价函数-针对整个训练集,衡量w和b的学习效果

用梯度下降法在整个训练集上来学习或训练w和b

0、空字符串、空列表、空元组等被视为 False

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。元组中的元素类型也可以不相同,其实,可以把字符串看作一种特殊的元组。元组用(),字符串用"",元组用逗号分割,字符串无明显分割符。

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
  • **不可变类型:**类似 C++ 的值传递,如整数、字符串、元组。如 fun(a),传递的只是 a 的值,没有影响 a 对象本身。如果在 fun(a) 内部修改 a 的值,则是新生成一个 a 的对象。
  • **可变类型:**类似 C++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后 fun 外部的 la 也会受影响

python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。


输入通道数是指输入图像中的颜色通道数或信息通道数。对于灰度图像,通常只包含一个单一的亮度通道,因此其通道数为1。这是因为灰度图像中的每个像素只包含亮度信息,而不包含颜色信息。

通常,彩色图像是由红色(R)、绿色(G)、蓝色(B)等不同颜色通道组成的,每个通道包含不同颜色信息。因此,彩色图像通常具有多个通道,例如RGB图像具有3个通道,而RGBA图像还包含了一个透明度通道,具有4个通道。

对于深度学习模型,通道数是一个重要的参数,因为它决定了每个像素点的特征信息的维度。在卷积神经网络(CNN)中,卷积核的数量通常与输入图像的通道数相对应,卷积核在每个通道上分别执行卷积操作,从而提取不同通道的特征信息。

因此,对于灰度图像,通常将其视为单通道图像,只有一个亮度通道。而对于彩色图像,通常将其视为多通道图像,每个颜色通道分别包含颜色信息。通道数的选择取决于图像的性质和任务需求,但通常在深度学习中使用的图像是灰度图像或RGB彩色图像。


torch.nn.Conv2d二维卷积层可以处理多通道的输入数据,例如彩色图像的三个通道

全连接一般会把卷积输出的二维特征图转化成一维的一个向量

全连接层的主要参数有权重矩阵W和偏置向量b

如何缓解全连接层的过拟合问题?
答:可以采用dropout、权重衰减等方法来缓解全连接层的过拟合问题


to(device) 方法返回一个新的张量,这个张量是原始张量的副本,但被移动到了指定的设备上。原始张量保持不变,不会发生就地移动。这是一个创建新张量的操作,新张量存储在指定的设备上。

例如,如果你有一个在 CPU 上的张量 x,并使用 y = x.to(device) 将其移动到 GPU 上,那么 x 保持在 CPU 上,而 y 是一个新的张量,它的数据存储在 GPU 上。你可以通过 y.device 属性来检查 y 所在的设备。

这种方法的使用方式允许你在不影响原始数据的情况下,在不同的设备上执行计算,非常灵活。同时,它还允许你在需要时切换计算设备,以充分利用 GPU 等硬件加速。


注意当使用 from package import item 这种形式的时候,对应的 item 既可以是包里面的子模块(子包),或者包里面定义的其他名称,比如函数,类或者变量。

使用形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字。

使用 from Package import specific_submodule 这种方法永远不会有错

DataLoader 封装了数据加载和迭代的逻辑。您只需为它提供数据集、批处理大小和其他选项,然后就可以使用 for 循环来迭代数据集,每次迭代返回一个批次的数据。

model.train()方法通常在训练卷积神经网络(CNN)或包含需要不同行为的层时使用。在CNN中,BatchNormalizationDropout等层在训练和推理模式下有不同的行为,因此需要使用model.train()model.eval()来切换它们的模式。

对于您提供的前馈神经网络,您可以不使用model.train(),因为它的结构不包含需要在训练和推理之间切换的层

len(data_loader) 计算了数据加载器 data_loader 中的批次数量,也就是你的训练数据集中样本的总数除以每个批次的样本数

相关推荐

  1. 学习笔记

    2024-04-20 22:50:04       15 阅读
  2. 学习笔记:机器学习

    2024-04-20 22:50:04       57 阅读
  3. 华为校招机试 - 扑克牌消除(20240417

    2024-04-20 22:50:04       9 阅读
  4. 【OpenCV学习笔记】- 学习笔记目录

    2024-04-20 22:50:04       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 22:50:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 22:50:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 22:50:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 22:50:04       20 阅读

热门阅读

  1. Android笔记: mkdirs失败,不生效怎么办

    2024-04-20 22:50:04       37 阅读
  2. 计算机网络——应用层(4)DHCP和套接字编程

    2024-04-20 22:50:04       13 阅读
  3. Led驱动程序

    2024-04-20 22:50:04       13 阅读
  4. Springboot整合物联网IOT的MQTT协议

    2024-04-20 22:50:04       13 阅读
  5. 推荐算法之协同过滤

    2024-04-20 22:50:04       14 阅读
  6. python中的并发编程-进程、线程2

    2024-04-20 22:50:04       14 阅读
  7. 数据库-Redis(18)

    2024-04-20 22:50:04       14 阅读
  8. wsl + ubuntu + pycups + mqtt 远程打印入门

    2024-04-20 22:50:04       16 阅读
  9. docker-002常用命令

    2024-04-20 22:50:04       12 阅读