机器学习笔记 - 杂记一

1、colab 上挂载云盘,切换到指定目录

#挂载云盘
from google.colab import drive
drive.mount('/content/drive/')
 
#是否可用cuda
import torch
torch.cuda.is_available()
 
#切换目录
import os
os.chdir('/content/drive/My Drive/AlexNet')
 
#查看目录内容
!ls

2、压缩包直接解压到google drive

挂在云盘之后,可以直接用命令进行解压,但是解压之后需要注意的是,需要等待并确认文件是否已经移动到google drive内。因为之前测试过一个压缩包,内含10000个文件,发现解压完在google drive内是慢慢增加的,所以猜测是从colab的服务器copy到云盘内的。

!unzip /content/drive/MyDrive/RSNA_224_224/test224.zip -d /content/drive/MyDrive/RSNA_224_224_test/ >train.log

3、反向传播

即通过神经网络得到预测结果,把预测结果跟标注Label进行比对,发现误差;然后得到神经网络里每个神经元权重导数;接着通过算法得到每个神经元导数,再更新神经元的权重以得到更好的神经元网络,周而复始迭代训练,使得误差减少。游戏规则是:小粉兔只能通过“高、低”来告诉小蓝人数字范围,直到猜到或无限趋近正确数字。这里的小蓝人代表输出层节点,左侧数字为输入信号,右侧数字为输出结果。小粉兔反馈小蓝人误差,然后小蓝人通过误差进行参数优化(绿线),几轮迭代后,误差会降到最小。简单来看,小粉兔把“误差”反向告知给小蓝人以调整误差的过程就是“反向传播”。上面的过程没有隐层神经网络,当加入隐藏网络(也就是说网络层级增多时),运算会越复杂,但基本原理是不变的。即通过误差反馈,不断迭代,使得误差变到最小。这就是模型“训练”。

机器学习笔记 - 杂记一_第1张图片

4、标量、向量、张量

标量:一个标量就是一个数。

向量:一个向量是一列数,这些数是有序排列的,通过次序中的索引,我们可以确定每个单独的数。

矩阵:矩阵是一个二维数组,其中的每一个元素被两个索引而非一个所确定。

张量:在某些情况下,我们会讨论坐标超过两维的数组。一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们将其称之为张量。

5、Keras加载模型进行继续训练

加载上次训练的网络

model = load_model(model_file)

继续训练

model.fit(x=x_data, y=y_data[y_col], batch_size=5000, epochs=20,verbose=10000)

6、Keras噪声层Noise

噪声层用于给数据附加随机的噪声,用以克服过拟合。
也是一种正则化,仅在训练时使用。

GaussianNoise

keras.layers.GaussianNoise(stddev)

GaussianDropout添加均值为0,标准差为stddev的高斯噪声。

keras.layers.GaussianDropout(rate)

将均值1,标准差为$sqrt{frac{rate}{1-rate}}$ 的噪声。
multiplicative noise 指在信号处理中,乘进原信号的随机噪声。

AlphaDropout

keras.AlphaDropout(rate, noise_shape=None, seed=None)

使输入数据的均值和方差保持不变,保持数据的自规范性。
通过随机将激活值设为负饱和值,alpha dropout 和selu激活函数配合较好。
噪声的标准差也是$sqrt{frac{rate}{1-rate}}$

7、ImageNet ILSVRC2012数据集下载

需要使用迅雷下载

验证集地址:
http://academictorrents.com/download/5d6d0df7ed81efd49ca99ea4737e0ae5e3a5f2e5.torrent
训练集地址:
http://academictorrents.com/download/a306397ccf9c2ead27155983c254227c0fd938e2.torrent

8、使用mxnet,cpu版本进行fit训练的时候报错 

UnboundLocalError: local variable 'optimizer' referenced before assignment

翻过官方git,倒是解决了,不过pip安装各种版本还是如此,所以根据修复代码,直接修改C:\ProgramData\Anaconda3\Lib\site-packages\mxnet\model.py,再PyCharm下定位到895行下增加如下代码,仅对本次session生效。

optimizer = self.optimizer

9、conda查看和添加源

查看源

conda config --show-sources

北外的源

conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/ 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/ 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/

中科大的源

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
 conda config --set show_channel_urls yes 

清华的源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

10、JupyterLab中配置多Python环境支持 

找到Anacoda安装默认的环境root ,搜索并安装nb_conda_kernels,安装成功后在启动JupyterLab,即可再Launcher中看到多出了这个默认环境,如下图

机器学习笔记 - 杂记一_第2张图片

 

你可能感兴趣的:(机器学习,深度学习,colab,反向传播,JupyterLab,conda)