keras虽然简单但是要做灵活的万博体育苹果app改变却显得麻烦

当前位置:万博体育苹果app > 万博体育苹果app > keras虽然简单但是要做灵活的万博体育苹果app改变却显得麻烦
作者: 万博体育苹果app|来源: http://www.manbetda.com|栏目:万博体育苹果app

文章关键词:万博体育苹果app,特征矩阵

  本来觉得学个tf和keras就够了,但是用了torch之后觉得真的这个框架太好用了,非常灵活可以很方便的和python语言混编,torch基本可以和cupy并列称为gpu版的numpy,文本部分有torchtext和allenlp,调包有sktorch非常简单的融入到sklearn的生态中,再高层的封装有fast.ai,简直太香了。

  考虑到网上的入门教程多且杂,还是打算自己好好整理一下,系统性的学习一下pytroch。

  总结内容包括了,github上的各类高星tutorial(其实内容上基本差不多大同小异的),pytorch中文手册,《deep learning with pytorch》《深度学习框架pytorch快速开发与实战》,《深度学习入门之torch》以及官方文档,说老实话,大部分教程或者书讲的都差不多,还是官网提供的信息量最多最大。

  关于torch的背景介绍就算了,网上一大堆,主要讲一下torch的主要功能:

  2、对我来说torch最大的优势之一,万博体育苹果app当gpu加速版的numpy来用,类似于cupy、cudf这类,cupy目前windows版本支持,而gpu版本的cudf暂时只能在linux下跑,至于rapidsai的cuml,目前功能还是不太完善很多算法没有。

  3、也是很重要的一点,tf的原始接口写nn虽然灵活但是麻烦,keras虽然简单但是要做灵活的改变却显得麻烦,pytorch处于比较折中的位置,不像keras那样上手就来(不过torch现在也支持sequential构建nn的功能所以实际上也已经非常简单耐用了),不过引入skorch之后方便得多,很灵活的就能和现有的代码结合起来。而且可以非常灵活简单的参与到nn的训练过程中来。

  显然,关于torch的使用,一开始就得介绍tensor(张量)的概念,张量很简单。

  一个点叫0阶张量,一维数据(向量)是一阶张量,二维数组(矩阵)是二阶张量,三维数组就叫三阶张量,张量是矢量概念的一种推广。

  这个思维导图是真的nice,可以看到torch.实现了基本上所有常用的numpy的处理方法。和cupy还真是。。。相似呢。

  下面我们用torch和cupy分别重写一下之前用numpy写的逻辑回归,这一章就结束。

  maxCycles = 500 #最大迭代次数,因为这里直接使用的是批梯度下降法(BGD),所以这里的迭代次数#就是使用全部数据计算全部样本的损失函数的值的并进行统一的梯度更新 这个过程重复多少次

  weights = np.ones((n,1)) #权重和偏置统一放在一起变成一个大权重,这样计算方便的多#这里使用的是全1初始化,lr对于初始化并不敏感

  maxCycles = 500 #最大迭代次数,因为这里直接使用的是批梯度下降法(BGD),所以这里的迭代次数#就是使用全部数据计算全部样本的损失函数的值的并进行统一的梯度更新 这个过程重复多少次

  weights = np.ones((n,1)) #权重和偏置统一放在一起变成一个大权重,这样计算方便的多#这里使用的是全1初始化,lr对于初始化并不敏感

  maxCycles = 500 #最大迭代次数,因为这里直接使用的是批梯度下降法(BGD),所以这里的迭代次数#就是使用全部数据计算全部样本的损失函数的值的并进行统一的梯度更新 这个过程重复多少次weights = np.ones((n,1),dtype=float) #权重和偏置统一放在一起变成一个大权重,这样计算方便的多#这里使用的是全1初始化,lr对于初始化并不敏感

  整体上差别不大,就是pytorch中dot只能针对一维数组,也就是shape为(m,)这样的矩阵,而如果是多维数组则需要使用mm,需要注意的是无论是numpy,cupy还是pytorch,矩阵的直接 “*”都是哈达玛积,也就是各位相乘不求和,而dot或者mm才是正常的矩阵相乘,也就是我们初高中熟悉的“正经”的矩阵乘法,需要注意。

  可以看到,torch和numpy之间的差异性很小,如果使用cuda,直接把数据.cuda到gpu上,那么接下去的运算就都会自动在gpu上运行了,贼方便。

  需要注意的是,连续值必须转化为float32格式,离散值必须转化为int64,否则会报错。。。。无语

  底层代码不难,有空也可以自己改改。这样包装之后的net就可以和gridsearch,scikit-optimize等一切sklearn-api的其它库之间形成良好的交互了。

  AI 研习社专栏旨在满足有持续创作能力的的知名学者、技术专家、优秀博主、讲师和人工智能人才文字创作和打造专属个人IP的需求。AI 研习社希望能够帮助大咖见证求知,分享洞见~

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!