今天听到一师兄做关于reinforcement neural network的报告,突然很想把以前某个关于机器学习的想法给实现一遍,再说现在机器学习红遍全世界,再不了解一下,感觉跟科研脱节了。
话说十年前,我入数学建模时,就开始跳进了神经网络的坑,那时候学了很多,也做了很多推导和工作,但是那时候限于cpu计算能力,这个方向一直不温不火,自己也在校报水了一点小文章,标题叫《基于XXX模型的XXXX系统》,可以说大概有了解,却没有深入,大概11年的时候,跟着学校的研究生做了一点NN的工作,结果还不错,但是那时候完全没有发文章的意识,只是觉得好玩,毕业了,工作了也就丢了。但是大概14还是15年开始,随着gpu加入,这个方向大火,今天已经燎原了,感觉错过了整整100亿。同时在12年,玩了一下比特币,觉得没挖到,就算了,看看今天的价格,感觉自己又错过了100亿。感觉自己天生就是穷的命
今天突然有种想玩一把机器学习的冲动,再一看,基本上机器学习都是用Python写的,毕竟现在核心计算都交给GPU了,用点胶水语言也无所谓了,要是放过去,说用Python做高性能计算是绝对不可想象的。大概五六年前,计算机领域大概流行这样一种模式,小规模验证用脚本语言,大规模计算用C来干,这才几年的光景,感觉这句话过时了。
话说自己接触Python也是本科期间,我本科没事的时候,最爱干的事情就是把图书馆理工科区转一遍,看看有什么好玩的书,所以也大概接触过Python,大概知道是个脚本语言,会写个Hello World。直到读研的时候,才开始用了比较多,用Python做爬虫,特别是Html上结构化的东西,用BeautifulSoup是比较方便的,再后来,用Python写点网络协议方面的东西,最后止步用Python写后端,说实话,读研那会真的是不务正业,天天搞这些乱七八糟东西,果然读博了感觉自己还是同样不务正业。
用Python最头痛的就是环境配置的问题,特别是在集群/超算上,不像个人计算机,你是没有权限改动系统文件夹的,所以基本上都是从头编译运行,自己编译一版Python,但我发现这条路走不太通,Python依赖的环境变量太多,感觉我搞不定,后来我发现组里的小伙伴都在用Anaconda来配Python,感觉自己已经落后了一个时代了。在小伙伴指点下,终于找到Anaconda是怎么用的,感觉超级方便。
https://it.stonybrook.edu/help/kb/installing-software-packages-locally-with-anaconda
安装包直接用conda install,方便程度感觉接近apt-get了。
哎,说实话,我高中毕业那会,关于对计算机专业的看法,我问了一下物理老师,他说,搞计算机的话,你得终身学习,现在想想这句的确不错。但幸运的是,我的专业不是计算机,但是干的计算机活,所以可以放松要求自己啦~~~哈哈哈
下面两个图展示了Anaconda里面Python和系统里面Python的区别
不过话说,有一点真的很奇怪,之前学校集群用pbs的时候,gpu的队列空的一塌糊涂,反而用slurm之后,gpu资源紧张了一踏糊涂。现在想跑个程序还得等。哎
虽然吐槽归吐槽,但是石溪的集群还是很不错的,各种package都有,管理员都很好,碰到问题都会很乐意给你解决,使用率相对国内来说还是比较高的。