【摘 要】程序设计中有一类问题是购票问题,在整钱找零钱时怎样的队伍排列可以使得售票处不会出现找不开零钱的局面。本文将采用五种算法分析这道题目,并对各种算法的效率加以比较。从中可以看出组合数学理论在算法优化方面起到的显著作用。
在深度学习方面,Keras提供了这样一个能够非常方便地搭建神经网络的工具,而且很容易快速上手。mnist手写数字识别是神经网络入门后的一个非常容易上手做的一个程序,尤其是在使用了深度学习框架后,不论是DNN还是CNN,都很简单。这篇文章里,我将介绍一下,使用keras实现mnist手写数字识别的程序。通过这篇文章,你应该就能够学会如何通过keras搭建自己的神经网络了。
圆周率PI是一个很神奇的数字,自古以来,包括数学家在内的很多人都曾使用过各种各样的算法去估算PI的真实值,并且都取得了一定的成就。古巴比伦人使用3.125作为PI的近似值,约公元前1700年的古埃及人则提出PI=3.1604,中国的祖冲之(430-501)则使用355/113作为近似值,使得PI值精确到了7位数。随着计算机的问世,以及科学技术发展的需要,PI的近似值目前精确位数早已突破万亿位。PI值除了有其每一位、每两位、每三位都符合均匀分布的统计规律特性之外,还可以用来检测计算机硬件的可靠性,而且,也可以用来入门并行计算。
我最近做深度学习在连续中文语音识别方向的应用的时候,根据一些论文和网上一些公开代码和模型结构,设计了一个神经网络的模型。但是在训练的时候,就首先遇到了很让人头疼的欠拟合问题。神经网络欠拟合的特征是,训练了很长时间,但是在训练集上,loss值仍然很大甚至与初始值没有太大区别,而且精确度也很低,几乎接近于0,在测试集上亦如此。且先不管模型结构配置的优劣,就欠拟合问题来说,需要从如下方面来着手。
在很多应用场景下,我们普遍需要进行并行计算,而不仅仅是并发。举个例子,比如机器学习中,我们常常使用GPU来并行训练神经网络;在例如Hadoop这种大数据计算平台等分布式系统中,不同的计算机之间,程序的执行也是并行的;同一台计算机中,多核处理器的不同CPU内核之间的计算也是并行的,系统可以此来均衡负载以及提高速度。那么,当我们有需要的时候,也可自己通过编写并行程序来进行计算,以实现我们所需要的功能,MPI就是这样的一个框架。
在计算机系统中,进程之间有时需要进行数据的通信,但是不同进程之间的数据存储是相互隔离的,每一个进程只能访问自己占有的数据,这时候,我们就需要使用用于进程间通信的机制了。不过,除了套接字外,进程间通信的前提是两进程必须是父子进程关系,没有这种关系的进程间不能直接进行通信,而是需要利用其共同的父进程进行信息的中转。文本为计算机专业学生和从业者必学的基础知识。
进程间有以下几种通信机制:
本文为我学习著名机器学习框架TensorFlow的过程中,对我通过一些教学资料所学到知识的笔记。本文也许看起来会跟一些教程有些相似,这实为我阅读观看实践后,对其内容进行的记录。
鉴于相关内容较多,我将在接下来对本文进行持续更新,直到本文所应当涉及的内容范围全部覆盖为止。
(20180317 最后更新)
今天早上,我一打开手机电脑,朋友圈和一些新闻中传遍了一则消息,谷歌免费开放了其开发者中心里面的机器学习和人工智能的学习课程。该课程全是干货,约15小时,25节课程,还有大量的练习。而且,该课程支持中文,这样一来,妈妈再也不用担心我因为英语不好而听不懂了。^_^
庆祝我博客建立一周年
1月25日,就是我的博客建立一周年的日子啦♪(^∇^*)
邻近中国农历新年,顺便祝各位访客朋友们,新年快乐、身体健康!Happy Chinese new year!
python可以用来实现两个主机进程之间的TCP通信,就是通过使用socket套接字来实现的,我们可以基于此,来实现一些应用层协议,以达到不同主机之间的进程通信的目的。这一点,除了普通的网络应用程序(如聊天工具和游戏等)之外,在分布式系统中,也有着很大的用途,比如机器学习需要在多台计算机中进行并行计算的时候。
服务器/客户机模型(C/S模型)如图: