pytorch怎么学(初学者如何学习python如何快速从Python小白到初级Python工程师)
本文目录
- 初学者如何学习python如何快速从Python小白到初级Python工程师
- PyTorch-4 nn.DataParallel 数据并行详解
- Pytorch学习记录-TextMatching几个经典模型
- 如何自学人工智能
初学者如何学习python如何快速从Python小白到初级Python工程师
制定目标
我的学习历程:我想免费学习Python,因此我必须养成每天的学习习惯(每天4个小时),甚至要利用我的周末。我的总体规划是设定目标并追逐目标。我为7个星期设定了7个目标!
第1周
我的第一周目标-(Python基础知识)作为初学者,我们的第一周目标应该是-熟悉Python基础知识,例如变量,条件,列表,循环,函数。(好奇并探索您可以使用Python进行的操作)。由于我想免费学习python,所以我开始在互联网上进行挖掘,幸运的是发现了一个Python备忘单,对我有很大帮助。
第2周
第二周目标-(提高我的编码能力)解决100多个编码问题。反向字符串,回文,***,合并排序数组,If-then-else语句,循环,函数和python软件包问题。“越努力,您就会成为更好的开发者”
第3周
第三周目标-(了解数据结构和算法),提升您的技能和知识,并学习基础知识,例如堆栈,队列,元组,树,字典,链接列表,搜索(线性和二进制搜索),递归函数(阶乘,斐波那契数列),排序(气泡排序,选择排序)和时间复杂度(线性,二次和常数)。
第4周
第四(探索Python库)Python之所以在开发人员中如此受欢迎,是因为其令人赞叹的库可供用户使用。您可以使用的一些最常见的库是Numpy,Scipy,Scikit-learn,Theano,TensorFlow,Keras,PyTorch和Pandas。
OpenCV是计算机视觉库,可为您提供图像处理功能!很酷吧?
SimpleCV,另一个CV库,本质上是OpenCV的子集,但学习曲线要低得多。
我发现个惊人的博客约有56个Python库。
PyGame,一个游戏开发库,可让您制作出色的游戏。
第5周
第五周目标-(学习Python框架)您必须学习至少3个流行的框架。阅读框架文档,在B站上找到视频教程。必须以Numpy,Django,pandas和Scrapy开头。
Django-一个Web应用程序框架。从这里您可以学习Django。
Flask(Python Microframework),另一种流行的Web应用程序框架,更加扎实(因此更加灵活)的Web应用程序开发方法
第6周
第六周目标-(从事Python项目)这是最重要的。在这里,您必须测试并应用您的知识。在第6周,您要做的就是至少处理3个python项目。我知乎分享了我以前的答案,您将在这里获得一些适合初学者和中级学习者的出色python项目:使用Python构建的一些出色项目?
第7周
第七周目标-(Python面试练习)恭喜!现在,您拥有在全球任何一家技术公司中申请任何软件工程工作所需的资源。现在,练习您的软技能,并尽可能练习面试问题。
PyTorch-4 nn.DataParallel 数据并行详解
***隐藏网址***
在本教程中,我们将学习如何使用多个GPU: DataParallel 的用法.
与PyTorch一起使用GPU非常容易。您可以将模型放在GPU上:
请注意,只要调用 my_tensor.to(device) ,就会在GPU上返回 my_tensor 的新副本,而不是重写 my_tensor 。 您需要将它分配给一个新的tensor,并在GPU上使用该tensor。
在多个GPU上执行前向、后向传播是很自然的。但是,PYTORCH默认只使用一个GPU。 你可以轻松地在多个GPU上运行您的操作,方法是让你的模型使用 DataParallel 并行运行:
这是本教程的核心。我们将在下面更详细地探讨它。 导入 与 参数 ———————-
导入 PyTorch 模块和定义参数
设备
虚拟数据集
制造一个 虚拟的(随机产生) 数据集。你只需要实现 Python 的 魔法函数 getitem :
简单模型
对于演示,我们的模型只获得一个输入,执行一个线性操作,并给出一个输出。 但是,您可以在任何模型(CNN、RNN、Capsule Net等)上使用 DataParallel 。
我们在模型中放置了一个print语句来监视输入和输出张量的大小。 请注意批次0的打印内容。
创建模型和数据并行
这是本教程的核心部分。首先,我们需要创建一个模型实例,并检查我们是否有多个GPU。 如果我们有多个GPU, 我们可以使用 nn.DataParallel 来包装我们的模型。 然后我们可以通过模型 model.to(device) 将我们的模型放在GPU上
运行模型
现在我们可以看到输入和输出张量的大小。
结果
如果您没有GPU或一个GPU,当我们批处理30个输入和30个输出时,模型得到30,输出与预期相同。 但是如果你有多个GPU,那么你可以得到这样的结果。
总结
DataParallel 会自动拆分数据,并将作业订单发送到多个GPU上的多个模型。 在每个模型完成它们的工作之后,DataParallel 在将结果返回给你之前收集和合并结果。
Pytorch学习记录-TextMatching几个经典模型
Pytorch学习记录-TextMatching文本匹配01
本文是对知乎上 这篇文章 的阅读笔记,查了一下ACL和arXiv历年来关于TextMatching的论文,不知道如何下手,就找找别人的文献综述看看,但是似乎和我想象的不大一样,还是得先实现一个基于深度神经网络的模型才行。
本文基于知乎《深度文本匹配发展总结》,希望作为对之后文献阅读的一个路径。
经典模型是DSSM(2013),来自论文《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》
模型的结构。使用DNN将高维度稀疏文本特征映射到语义空间中的低维密集特征中。第一个隐藏层,具有30k单位,完成word hashing。然后通过多层非线性投影投射word hashing特征。
此DNN中的最后一层神经活动形成了语义空间中的特征。
这个模型的缺点也很明显,没有考虑单词之间的时序联系,相似度匹配用的余弦相似度是一个无参匹配公式。
经典模型是MV-LSTM模型(2015),来自中国科学院《A Deep Architecture for Semantic Matching with Multiple Positional Sentence Representati***》
使用Bi-LSTM构建神经网络,对LSTM隐藏层的输出进行匹配,作者认为这个模型能够考察每个单词在不同语境下的含义,然后使用Bi-LSTM处理句子可以实现用变长的窗口逐步解读句子,从多粒度考察句子的效果。
模型中 和 就是输入的句子,首先通过Bi-LSTM获得位置语句表示(表示为虚线橙色框)。然后,k-Max汇集从每个交互矩阵中选择前k个相互作用(在图中表示为蓝色网格)。最后通过多层感知器MLP计算匹配分数。
因为语言的表示有多样性,带参数的公式比不带参数的公式显得更加合理,然后对匹配矩阵进行K-Max的动态池化操作,也就是挑选K个最大的特征,最后采用全连接层进行维度压缩和分类。
来自论文《Text Matching as Image Recognition》
这篇论文从3个角度构建匹配矩阵。更精细的考虑句子间单词的两两关系,构建出3个矩阵进行叠加,把这些矩阵看作是图片,用卷积神经网络对矩阵进行特征提取。
论文中一共有3种方式构建匹配矩阵,Indicator是一个这个句子的单词是否在另一个句子中出现的指示矩阵,第二个是单词之间的点积,第三个是余弦相似度。三个匹配矩阵叠加再用CNN在矩阵上进行特征提取是这篇整体的思想。
在做实际匹配处理的时候,通常会出现训练集、测试集中出现语料库中没有的单词(OOV问题)。深层次句间交互模型的单词使用Glove预训练和characters卷积拼接作为单词的embedding输入。characters卷积是对每个字母随机赋予一个向量,对单词的所有字母卷积得出特征作为单词的补充特征,这些特征是为了缓解OOV的问题。
2017年IBM《Bilateral Multi-Perspective Matching for Natural Language Sentences》
双边、多角度句子匹配。
文章创新点
模型的整体框架图,输入是预训练的glove embeddings 和 chars embeddings,经过BiLSTM的编码之后,对每一个step的LSTM的输出进行从p到q和从q到p的两两配对,有四种组合方式,然后将所有的结果进行拼接和预测结果。
使用四种匹配方式,匹配公式采用带参数的余弦相似度
2018年纽约大学《Natural Language Inference over Interaction Space》
Interactive Inference Network(IIN,交互式推理网络)
DenseNet可以在经过复杂的深度神经网络之后,还可以很大程度上保留原始特征的信息。(但是为了保留原始特征,现在是不是使用attention机制会更好?)。
模型的整体框架,可以看到输入部分有四个部分的特征(Glove,char,EM(exact match),POS)。这是一个分级多阶段处理的网络,包括5个部分,每个组件都与不同类型的实现兼容。机器学习中可能存在的所有方法,例如决策树,支持向量机和神经网络方法,都可以转移以替换该体系结构中的某些组件。
什么是highway networks?
使用highway network对特征进行编码,这个编码的输出构造一个句子内的attention,(具体就是公式 ,对单词a和单词b的向量和它们的点积进行拼接,再做一个线性的映射得到一个权重参数,经过softmax归一化后成为句内attention的权重参数)然后是参考了LSTM的设计,对highway出来的向量和带了句内交互的attention项的向量用门机制进行了过滤,得到每个单词的向量表示,然后将向量表示两两之间做一个匹配形成匹配矩阵,最后用DenseNet对匹配矩阵进行特征提取。
2018年首尔大学《Semantic Sentence Matching with Densely-connected Recurrent and Co-attentive Information》
这篇论文的创新点在于:1、采用了固定的glove embedding和可变的glove embedding拼接并提升了模型效果。2、采用stack层级结构的LSTM,在层级结构上加入了DenseNet的思想,将上一层的参数拼接到下一层,一定程度上在长距离的模型中保留了前面的特征信息。3、由于不断的拼接导致参数增多,用autoencoder进行降维,并起到了正则化效果,提升了模型准确率。
怎么感觉模型越来越复杂,而且使用的模型结构和之前看到的不太一样,GEC部分还好理解,为什么文本匹配部分更加庞杂。
如何自学人工智能
学习AI的大致步骤:
(1)了解人工智能的一些背景知识;
(2)补充数学或编程知识;
(3)熟悉机器学习工具库;
(4)系统的学习AI知识;
(5)动手去做一些AI应用;
1 了解人工智能的背景知识
人工智能里面的概念很多,比如机器学习、深度学习、神经网络等等,使得初学者觉得人工智能很神秘,难以理解。刚开始学习的时候,知道这些名词大致的意思就行了,不用太深究,学习过一段时间,自然也就清楚这些概念具体代表什么了。
人工智能是交叉学科,其中数学和计算机编程是学习人工智能最重要的两个方面。这些在“知云AI专栏”之前的文章“认识人工智能”,也为大家介绍过,没阅读过的同学可以去看一下。
下图为人工智能学习的一般路线:
2补充数学或编程知识
对于已经毕业的工程师来说,在系统学习AI之前,一般要补充一些数学或者编程方面的知识。如果你的数学和编程比较好,那么学习人工智能会轻松很多。
很多同学一提到数学就害怕,不过,学习人工智能,数学可以说是绕不过去的。在入门的阶段并不需要太高深的数学,主要是高等数学、线性代数和概率论,也就是说,大一大二学的数学知识已经是完全够用了。如果想要从事机器学习工程师的工作,或者搞人工智能的研究,那么应该多去学习数学知识,数学好将会是工作中的一大优势。
Python是在机器学习领域非常受欢迎,可以说是使用最多的一门编程语言,因此Python编程也是需要掌握的。在众多的编程语言中,Python是比较容易学习和使用的编程语言,学好Python也会受益很多。
3 熟悉机器学习工具库
现在人们实现人工智能,主要是基于一些机器学习的工具库的,比如TensorFlow、PyTorch等等。
在这里推荐大家学习PyTorch。PyTorch非常的受欢迎,是容易使用的机器学习工具库,有人这样评价PyTorch“也说不出来怎么好,但是使用起来就是很舒服”。
刚开始学习人工智能的时候,可以先运行一下工具库官网的示例,比如MNIST手写体识别等。这样会对人工智能有一个感性的认识,消除最初的陌生感。然后可以看看里面的代码,你会发现,其实神经网络的程序并不复杂,但是会对神经网络的原理和训练有很多的疑问。这是一件好事,因为带着问题去学习,会更有成效。
4 系统的学习人工智能
这里的人工智能主要指机器学习,因为目前人工智能主要是通过机器学习的方式来实现的。
机器学习知识主要有三大块:
(1)传统机器学习算法,比如决策树、随机森林、SVM等,这些称作是传统机器学习算法,是相对于深度学习而言的。
(2)深度学习,指的就是深度神经网络,可以说是目前最重要最核心的人工智能知识。
(3)强化学习,源于控制论,有时候也翻译成增强学习。深度学习可以和强化学习相结合使用,形成深度强化学习。
在这里需要知道的是深度学习并不难学,对于一些工科的研究生,一般只需要几周就可以上手,并可以训练一些实际应用中的神经网络。但是想要对深入学习有深入理解不是容易的事情,一般需要几个月的时间。
传统机器学习算法的种类非常多,有些算**有非常多的数学公式,比如SVM等。这些算法并不好学,因此可以先学习深度学习,然后再慢慢的补充这些传统算法。
强化学习是比较有难度的,一般需要持续学习两三个月,才能有所领悟。
5 动手去做一些AI应用
学习过几周的深度学习之后,就可以动手尝试去做一些AI应用了,比如图像识别,风格迁移,文本诗词生成等等。边实践边学习效果会好很多,也会逐渐的加深对神经网络的理解。
更多文章:
currency converter xe(苹果为什么没有下载xe会出现xecurrency这个软件)
2026年4月2日 08:20
pytorch怎么学(初学者如何学习python如何快速从Python小白到初级Python工程师)
2026年4月2日 08:00
博途c***tant是什么意思(c***tant是什么意思 常数的定义及应用场景)
2026年4月2日 07:40
width可以继承吗(div css 子DIV 可以继承父元素哪些属性)
2026年4月2日 07:00
xml数据库编辑器(电脑上找不到xml editor打开方式)
2026年4月2日 06:20
暴雪与网易合作(网易回应暴雪声明终止合作, 如何评价近年来网易与暴雪的合作)
2026年4月2日 05:20






