自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 MindSpore激活函数总结与测试

技术背景激活函数在机器学习的前向网络中担任着非常重要的角色,我们可以认为它是一个决策函数。举个例子说,我们要判断一个输出的数据是猫还是狗,我们所得到的数据是0.01,而我们预设的数据中0代表猫1代表狗,那么0.01虽然不是0也不是1,但是我们可以预期这张图片是猫的概率肯定是非常大的。这样的话我们就可以假定一个激活函数,当得到的数据小于0.5时,这个数据就被认为是猫,大于0.5时,这个数据就被认...

2021-05-27 15:42:00 161 1

原创 python3读取文件指定行的三种方案

技术背景考虑到深度学习领域中的数据规模一般都比较大,尤其是训练集,这个限制条件对应到实际编程中就意味着,我们很有可能无法将整个数据文件的内容全部都加载到内存中。那么就需要一些特殊的处理方式,比如:创建内存映射文件来替代原始文件被加载到内存中、预处理数据后再加载内存中以及单次只加载文件的片段。其中关于内存映射技术的一些应用,在前面的这2篇博客1和博客2中有所介绍,而本文将要介绍的是从文件中只读取...

2021-05-24 10:16:00 1462

原创 在C++中调用Python

技术背景虽然现在Python编程语言十分的火爆,但是实际上非要用一门语言去完成所有的任务,并不是说不可以,而是不合适。在一些特定的、对于性能要求比较高的场景,还是需要用到传统的C++来进行编程的。但是C++的一个缺点是比较难找到很好的轮子,这也是很多人专用Python的一个重要原因。这篇文章我们要介绍的是一个比较特殊的场景——用C++的代码去调用Python函数中实现的一些功能。这样的话,如果...

2021-05-21 15:58:00 1314

原创 C++基础——文件逐行读取与字符匹配

技术背景用惯了python,对其他语言就比较的生疏。但是python很多时候在性能上比较受局限,这里尝试通过C++来实现一个文件IO的功能,看看是否能够比python的表现更好一些。关于python的类似功能的实现,可以参考这一篇博客。C++读取文件首先我们构造一个txt文件用于测试,比如以下这个名为mindspore.txt的文件(之所以取这个名字,是因为最近在研究mindspore,因...

2021-05-20 09:47:00 1646

原创 MindSpore模型验证

技术背景在前面一篇博客中,我们介绍了MindSpore在机器学习过程中保存和加载模型的方法。这种将模型存储为静态文件的做法,使得我们可以更灵活的使用训练出来的模型,比如用于各种数据集的验证,或者是迁移学习等场景。前言这里使用的数据集和加载的模型,都来自于这篇博客。关于MindSpore的环境部署,可以参考这两篇博客:CPU版本安装、GPU版本安装,当然,这两个方案都使用了Docker容器化...

2021-05-18 14:17:00 361

原创 Open Babel的安装与使用

技术背景Open Babel是化学领域常用的一个文件格式转换工具,它可以支持xyz的坐标格式、SMILES表达式、InChI表达式和mol以及mol2等格式之间的互相转化。比如说,你只有一个甲烷的SMILES表达式C,那么你就可以使用Open Babel将其转化成一个mol2文件,这样就可以用vmd等工具进行分子的可视化(参考这篇博客)。OBABEL的安装OBABEL的安装方式有两种,一种...

2021-05-18 11:01:00 11888 1

原创 MindSpore保存与加载模型

技术背景近几年在机器学习和传统搜索算法的结合中,逐渐发展出了一种Search To Optimization的思维,旨在通过构造一个特定的机器学习模型,来替代传统算法中的搜索过程,进而加速经典图论等问题的求解。那么这里面就涉及到一个非常关键的工程步骤:把机器学习中训练出来的模型保存成一个文件或者数据库,使得其他人可以重复的使用这个已经训练出来的模型。甚至是可以发布在云端,通过API接口进行调用...

2021-05-17 11:50:00 728

原创 使用ProjectQ生成量子算法指令集

技术背景所谓的指令集,按照字面意思来理解就是计算机底层允许使用的操作指令的集合。在量子计算机领域,由于实现方案的不同,在不同的体系内的指令集其实是不一样的,并不是说OpenQASM里面的所有指令都会被支持。但是这也没有关系,因为本文将要介绍的开源量子计算模拟器框架ProjectQ可以支持将输入的量子算法分解到对应的指令集中。输出算法操作首先介绍一个最基本的使用方法,就是使用ProjectQ...

2021-05-15 11:45:00 342

原创 使用MindSpore的线性神经网络拟合非线性函数

技术背景在前面的几篇博客中,我们分别介绍了MindSpore的CPU版本在Docker下的安装与配置方案、MindSpore的线性函数拟合以及MindSpore后来新推出的GPU版本的Docker编程环境解决方案。这里我们在线性拟合的基础上,再介绍一下MindSpore中使用线性神经网络来拟合多变量非线性函数的解决方案。环境配置在按照这篇博客中的方法进行安装和配置之后,可以在本地的dock...

2021-05-15 10:48:00 1011

原创 pysmiles:一个用于读写SMILES表达式的python库

技术背景SMILES表达式是化学里面常用的用于标定元素之间关系的字符串,旨在用最简短的语句来完整的表达一个分子体系内所蕴含的基本信息,比如元素、连接性以及连接属性等。由于SMILES表达式的定义种类太多,需要完整介绍的可以阅读这篇博客或者是opensmiles的官方网站。这里我们简单介绍几种常见的情况:在SMILES表达式中,往往会去掉\(H\)元素,比如甲烷\(CH_4\)用SMILES...

2021-05-10 10:54:00 4640 1

原创 Ubuntu Linux下的PDF阅读器推荐——Okular

安装方法在Ubuntu下直接使用sudo apt-get install okular即可,如果中间遇到依赖项的问题,可以通过运行sudo apt --fix-broken install来自动修复。参考连接https://blog.csdn.net/flycappuccino/article/details/80816311...

2021-05-08 11:20:00 1191

原创 分子动力学模拟软件VMD的安装与使用

技术背景在分子动力学模拟过程中会遇到一些拓扑结构非常复杂的分子模型,所谓的复杂不仅仅是包含众多的原子,还有各种原子之间的成键关系与成键类型等。这时候就非常能够体现一个好的可视化软件的重要性了,这里我们介绍的VMD是一个业界非常常用、功能也非常强大的一款软件。VMD的安装首先访问VMD官方网站,找到适合自己本地OS和硬件系统的版本进行下载。这里我们本地是Ubuntu20.04的系统,所以下载...

2021-05-07 15:19:00 3014

原创 基于Docker安装的MindSpore-1.2 GPU版本

技术背景在前面一篇博客中,我们介绍过MindSpore-CPU版本的Docker部署以及简单的案例测试,当时官方还不支持GPU版本的Docker容器化部署。经过MindSpore团队的努力,1.2.0版本的MindSpore-GPU终于推出了Docker版本的安装解决方案:在本文中我们将针对这一方案进行直接的测试,并补充其中一些很有可能被忽略的细节,接下来直接上手。更换华为云镜像源在华为...

2021-05-06 16:26:00 128

原创 基于Docker配置本地Gitlab

技术背景Github和Gitee(码云)是最常见的基于git的代码托管平台,现在基于svn的代码管理仓库已经相对比较少见了,大部分还都是企业内部的代码仓。但是基于开源的Gitlab,我们在企业内网也可以立马搭建一个代码托管平台,并且自带集成有各种代码自动化测试工具,实现持续集成和持续测试。关于Docker容器的使用,这里我们主要是为了规避不同的OS发行版所带来的安装困扰,而Gitlab官方也...

2021-05-05 19:48:00 236

原创 python3之lambda表达式

技术背景lambda表达式本身是一个非常基础的python函数语法,其基本功能跟使用def所定义的python函数是一样的,只是lambda表达式基本在一行以内就完整的表达了整个函数的运算逻辑。这里我们简单展示一些lambda表达式的使用示例,以供参考。二元求和首先我们尝试一个最简单的二元求和的ipython案例,输入两个参数x和y,返回这两个元素的和:[dechin@dechin-ma...

2021-05-04 21:17:00 156

原创 python3使用迭代生成器yield减少内存占用

技术背景在python编码中for循环处理任务时,会将所有的待遍历参量加载到内存中。其实这本没有必要,因为这些参量很有可能是一次性使用的,甚至很多场景下这些参量是不需要同时存储在内存中的,这时候就会用到本文所介绍的迭代生成器yield。基本使用首先我们用一个例子来演示一下迭代生成器yield的基本使用方法,这个例子的作用是构造一个函数用于生成一个平方数组\({0^2, 1^2, 2^2 ....

2021-05-04 19:29:00 127

原创 python3函数可变输入参量

技术背景通常我们在python中定义一个函数的时候,需要给出明确的函数输入参量,比如对于一个数学函数\(z=f(x,y)\)就表示,\(z\)是关于\(x\)和\(y\)的一个函数。但是如果对于未知参量的函数,比如函数形式可以是\(z=f(x,y)\),但也可以是\(z=f(x,y,m,n,i,j,k)\),在不确定入参的时候,就可以采用python中的*args和**kwargs参数。*a...

2021-05-03 19:29:00 359

原创 python3存储numpy格式的矩阵

技术背景numpy在python中的地位是相当高的,即使是入门的python使用者也会经常看到这个库的使用。除了替代python自带的列表数据格式list之外,numpy的一大优势是其底层的高性能实现方式,比如前一篇博客中所提到的矢量运算,就是一种基于SIMD的底层运算优化方案,使得numpy的计算速度远高于一个普通的for循环。而在日常运算的过程中,有些数据往往是不会变化的,比如机器学习中...

2021-05-02 19:21:00 627

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除