分类 深度学习 下的文章

安装主题库

pip install jupyterthemes

更新主题库

pip install --upgrade jupyterthemes

查看主题库

输入下列代码,可以看到可以设置的所有主题

jt -l

#通过命令jt -l 可查看主题列表,效果如下

C:\Users\dell>jt -l
Available Themes:
   chesterish     #暗色
   grade3        #亮色
   gruvboxd     #暗色
   gruvboxl        #淡棕色
   monokai        #暗色
   oceans16        #暗色
   onedork        #暗色
   solarizedd    #青色
   solarizedl    #淡粉色

设置后的效果

image.png

选好主题后,设置合适的字体大小.这是我的配置
jt --lineh 140 -tf ptmono -t onedork -ofs 13 -nfs 14 -tfs 14 -fs 14 -T -N -dfs 10

设置代码补全

install jupyter_nbextensions_configurator

安装完成后重新打开jupyternotebook,在菜单栏可以看到 NBextensions这个选项,在其中勾选上“Hinterland”即可打开自动补全。效果如下:

image.png

恢复原来的配置

jt -r

复试

英语

自我介绍/介绍你的家乡/重庆等

如:请介绍一下重庆这个城市。

英语部分提前准备即可,流畅自然,并不是一个重点考察项。

综合素质

自我补充环节,补充环节可以作为自我介绍的中文版,建议把自己的本科经历的优势内容突出展现给老师看,有项目经历的把自己的经历以及在其中负责的内容说清楚,说下自己研究生期间的打算以及未来想从事的方向。

专业课

复试专业课914在资料中下载。

人工智能导论:https://www.icourse163.org/learn/ZJUT-1002694018

c语言:https://www.icourse163.org/course/ZJU-9001

邮件

建议现在就选择一个老师发邮件。邮件标题[研究生调剂]+初试分数+姓名+电子信息

导师信息查询:http://znxy.cqust.edu.cn/yjsjy1/dsjs1.htm

复试调剂干货

链接: https://pan.baidu.com/s/1iRPc852a9KcjMmzrHozhJA 提取码: dtce

报考福利

每月600国家助学金+400学校助学金=1000

新生奖学金调剂10000

image.png

报考专业

电子信息调剂报考专业为重庆科技学院-资源与环境-智慧安全,主要方向图像处理(较多),自然语言处理,语音识别,网络安全,物联网等

初试是电路的或者自动控制原理,可以看电气院的这个专业,收分低一些,导师有些是我们智能院的可以选,主要方向有人工智能等,具体不是很了解,但是他们可以选修我们智能院的课。

其余,机械院,安全工程好调。

qq群:‍737784595

1.测试集不可知的悖论

我们知道机器学习模型主要通过模型在测试集上的运行效果来判断模型好坏,测试集相当于是“高考",而此前的模型训练都相当于是在练习,但怎么样的练习才能有效的提高高考成绩,这里就存在一个“悖论”,那就是练习是为了高考,而在高考前我们永远不知道练习是否有效,那高考对于练习的核心指导意义何在?在机器学习领域,严格意义上的测试集是不能参与建模的,此处不能参与建模,不仅是指在训练模型时不能带入测试集进行训练,更是指当模型训练完成之后、观察模型在测试集上的运行结果后,也不能据此再进行模型修改(比如增加神经网络层数),后面我会提到,把数据带入模型训练是影响模型参数,而根据模型运行结果再进行模型结构调整,实际上是修改了模型超参数,不管是修改参数还是超参数,都是影响了模型建模过程,都相当于是带入进行了建模。是的,如果通过观察测试集结果再调整模型结构,也相当于是带入测试集数据进行训练,而严格意义上的测试集,是不能带入模型训练的。(这显然是一个有点绕的"悖论".)

但是,机器学习建模的核心目标就是提升模型的泛化能力么?而泛化能力指的是在模型未知数据集(没带入进行训练的数据集)上的表现,虽然测试集只能测一次,但我们还是希望有机会能把模型带入未知数据集进行测试,此时我们就需要一类新的数据集--验证集。验证集在模型训练阶段不会带入模型进行训练,但当模型训练结束之后,我们会把模型带入验证集进行计算,通过观测验证集上模型运行结果,判断模型是否要进行调整,验证集也会模型训练,只不过验证集训练的不是模型参数,而是模型超参数,关于模型参数和超参数的概念后面还会再详细讨论,当然,我们也可以把验证集看成是应对高考的“模拟考试”,通过"模拟考试"的考试结果来调整复习策略,从而更好的应对“高考"。总的来说,测试集是严格不能带入训练的数据集,在实际建模过程中我们可以先把测试集切分出来,然后“假装这个数据集不存在",在剩余的数据集中划分训练集和验证集,把训练集带入模型进行运算,再把验证集放在训练好的模型中进行运行,观测运行结果,再进行模型调整。

总的来说,在模型训练和观测模型运行结果的过程总共涉及三类数据集,分别是训练集、验证集和测试集。不过由于测试集定位特殊,在一些不需要太严谨的场景下,有时也会混用验证集和测试集的概念,我们常常听到“测试集效果不好、重新调整模型“等等,都是混用了二者概念,由于以下是模拟练习过程,暂时不做测试集和验证集的区分。在不区分验证集和测试集的情况下,当数据集切分完成后,对于一个模型来说,我们能够获得两套模型运行结果,一个是训练集上模型效果,一个是测试集上模型效果,而这组结果,就将是整个模型优化的基础数据。

2.模型拟合度概念与实验

在所有的模型优化问题中,最基础的也是最核心的问题,就是关于模型拟合程度的探讨与优化。根据此前的讨论,模型如果能很好的捕捉总体规律,就能够有较好的未知数据的预测效果。但限制模型捕捉总体规律的原因主要有两点:

  • 其一,样本数据能否很好的反应总体规律
    如果样本数据本身无法很好的反应总体规律,那建模的过程就算捕捉到了规律可能也无法适用于未知数据。举个极端的例子,在进行反欺诈检测时,如果要基于并未出现过欺诈案例的历史数据来进行建模,那模型就将面临无规律可捕捉的窘境,当然,确切的说,是无可用规律可捕捉;或者,当扰动项过大时,噪声也将一定程度上掩盖真实规律。
  • 其二,样本数据能反应总体规律,但模型没有捕捉到
    如果说要解决第一种情况需要在数据获取端多下功夫,那么如果数据能反应总体规律而模型效果不佳,则核心原因就在模型本身了。此前介绍过,机器学习模型评估主要依据模型在测试集上的表现,如果测试集效果不好,则我们认为模型还有待提升,但导致模型在测试集上效果不好的原因其实也主要有两点,其一是模型没捕捉到训练集上数据的规律,其二则是模型过分捕捉训练集上的数据规律,导致模型捕获了大量训练集独有的、无法适用于总体的规律(局部规律),而测试集也是从总体中来,这些规律也不适用于测试集。前一种情况我们称模型为欠拟合,后一种情况我们称模型为过拟合,我们可以通过以下例子进行进一步了解:

    np.random.seed(1999)
    #创建数据
    n_dots = 20
    x = np.linspace(0, 1, n_dots)                        #从0到1,等宽排布的20个数
    y = np.sqrt(x)+ 0.2*np.random.rand(n_dots) - 0.1

TensorBoard原本是Tensorflow的可视化工具,而目前在TensorboardX工具加持下,很多深度学习框架都可以使用TensorBoard进行可视化,手动安装。

安装方法

pip install tensorboardX
from torch.utils.tensorboard import SummaryWriter

SummaryWriter类与Tensorboard的基本使用

  • Summary是最常用的类
  • 在真实的生产环境中,大规模深度学习模型是部署在服务器运行的,所以通常不能够一边输入数据一边绘图观测结果,我们只能将需要记录的关键结果记录下来并保存在某个文件里,然后在本地或者服务器上开启某项服务读取该文件保存的信息。

使用SummaryWriter进行记录并读取结果的一般过程如下

SummaryWriter读取过程

add_scalar进行数据记录

记录每一组标量,在实际记录过程中,通过迭代的方式逐个增加。

param:

  1. 代表该组记录的名称(生成图像的名称)
  2. 代表y值
  3. 代表x值

完成记录后,即可读取文件查看记录结果。除此之外还有add_graph方法用于记录深度学习建模流程。**

启动服务读取文件

cmd中读取

tensorboard --logdir="test"

安装过程

安装过程

运行显示如上ModuleNotFoundError:No module named 'tensorboard' 问题,原因是由于TensorboardX组件没有装好。运行一下代码,会自动安装pygame包。

pip install tb-nightly

安装完成之后顺利打开

安装成功