自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (10)
  • 收藏
  • 关注

原创 深度学习最全优化方法总结比较及在tensorflow实现

梯度下降算法针对凸优化问题原则上是可以收敛到全局最优的,因为此时只有唯一的局部最优点。而实际上深度学习模型是一个复杂的非线性结构,一般属于非凸问题,这意味着存在很多局部最优点(鞍点),采用梯度下降算法可能会陷入局部最优,这应该是最头疼的问题。这点和进化算法如遗传算法很类似,都无法保证收敛到全局最优。因此,我们注定在这个问题上成为“高级炼丹师”。可以看到,梯度下降算法中一个重要的参数是学习速率,适当...

2018-08-19 13:32:19 7109

原创 词向量—Word2Vec入门及Gensim实践

在机器学习领域,语音识别和图像识别都比较容易做到。语音识别的输入数据可以是音频频谱序列向量所构成的matrix,图像识别的输入数据是像素点向量构成的矩阵。但是文本是一种抽象的非结构化的数据,显然不能直接把文本数据喂给机器当做输入,因此这里就需要对文本数据进行处理。Word2vec是google在2013年推出的一个词向量实现工具(注意,不是词向量模型),它的特点是将所有的词向量化,这样词与词之...

2018-08-08 18:10:57 4668

原创 移动端深度框架 TensorFlow Lite 、小米MACE和 支付宝xNN 比较

一直以来,随着深度学习的快速发展,复杂而庞大的模型需要在计算力强大的计算设备上才可以展示其强大的能力,如GPU,深度学习运行在移动和嵌入式设备中,它赋予了这些设备在终端本地运行机器学习模型的能力,从而不再需要向云端服务器发送数据。这样一来,不但节省了网络流量、减少了时间开销,而且还充分帮助用户保护自己的隐私和敏感信息,而在没有强大计算机资源支持的情况下,怎样才能大规模部署深度学习算法成为可能。...

2018-07-01 18:02:46 3234 2

原创 变分自编码器(VAE)与生成对抗网络(GAN)在TensorFlow中实现

变分自编码器(VAE)与生成对抗网络(GAN)是复杂分布上无监督学习最具前景的两类方法。本文中,作者在 MNIST 上对这两类生成模型的性能进行了对比测试。本项目总结了使用变分自编码器(Variational Autoencode,VAE)和生成对抗网络(GAN)对给定数据分布进行建模,并且对比了这些模型的性能。你可能会问:我们已经有了数百万张图像,为什么还要从给定数据分布中生成图像呢?正如 Ia...

2018-06-24 11:24:59 8824

原创 【CVPR2018】DeepMind最新演讲:VAEs and GANs

导读:在CVPR2018会议上,DeepMInd科学家分享了结合GANs和VAEs各自优势的GAN hybrids模型,两者不仅可以提高VAE的采样质量和改善表示学习,另一方面也可提高GAN的稳定性和丰富度。参考:作者主页: http://elarosca.net...

2018-06-24 10:26:13 914 1

原创 Word2vec 模型构建及可视化

文本本质上是一种非结构化的数据,无论过去还是现在,其在数学中的研究远远少于向量。历史上数学家牛顿是第一个在力学情境中研究向量的人。向量的概念已经存在了三个世纪,其科学性已非常成熟。而文本数据的数学探索这个概念只有几十年的历史。现在文本数据的数学思考应用尤其重要。数据的价值已被理解但是还未兑现。大部分商业相关信息最初都是非结构化形式,主要是文本。数据只有读取之后才可见,才能用于商业、教育、政府管理和...

2018-03-26 12:23:09 6412 1

原创 词向量算法—【AAAI2018】蚂蚁金服公开的基于笔画的中文词向量算法

词向量算法是自然语言处理领域的基础算法,在序列标注、问答系统和机器翻译等诸多任务中都发挥了重要作用。词向量算法最早由谷歌在2013年提出的word2vec,在接下来的几年里。该算法也经历了不断的改进,但大多数仅适用于拉丁字符构成的单词(英文、法语。。。。),结合中文语言特性的词向量研究相对较少。由于中文语言的博大精深,一字一词都蕴含这丰富的语义,在自然语言处理的相关任务中对于中文语料很难处理。惊喜...

2018-03-16 22:32:42 1587

原创 Redis 哨兵模式原理

1)哨兵模式原理①哨兵如何实现相互监督的功能哨兵通过发布订阅__sentinel__:hello channel来实现这个功能。每个哨兵每隔2s会向自己监控的所有主从Redis节点发送hello message,包括自己的IP、端口、运行ID、自己监控的Master节点IP、Master节点端口。 所有主从Redis节点也会反馈这样的信息②哨兵如何故障检测基于多数投票原则第一:某个哨兵节点判定master节点故障,他会投出一票S_DOWN(主观下线)第二:当有足够多的sentinel

2020-10-22 22:32:32 33

原创 分布式锁有三种实现方式

分布式锁有三种实现方式:1. 数据库乐观锁;利用数据版本 Version 记录机制实现:2. 基于Redis的分布式锁; SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置,可以利用它来实现锁的效果。缓存过期时,通过 SetNX 获取锁,如果成功了,那么更新缓存,删除锁,需要注意的是:如果请求执行因为某些原因意外退出了,导致创建了锁但是没有删除锁,那么这个锁将一直存在,以至于以后缓存再也得不到更新。于是乎我们需要给锁加一个过期时间以防...

2020-10-22 20:44:09 73

原创 Redis 缓存穿透+缓存击穿+缓存雪崩

Redis 缓存穿透+缓存击穿+缓存雪崩1.缓存穿透:缓存穿透是指读的请求在缓存redis中没有命中,需要从mysql数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 1.2解决办法: 缓存空对象 当存储层不命中后,即使数据库返回的空对象也将其缓存起来,同时会设置一个过期时间,之后再访问这个数据将会从缓存中获取,依次保护了后端数据源。 ...

2020-10-22 20:25:04 35

原创 缓存与数据库数据不一致 解决方法

Redis缓存与数据库数据一致性不管是先写数据库,再删除Redis缓存;还是先删除缓存,再写库,都有可能出现数据不一致的情况:1.如果删除了缓存,还没有来得及写数据库,另一个线程就来读取,发现缓存为空,则去数据库中读取数据写入缓存,此时缓存中为脏数据。 2.如果先写了库,在删除缓存前,写库的线程宕机了,没有删除掉缓存,则也会出现数据不一致情况。1.第一种方案:延时双删策略+缓存超时设置在写库前后都进行删除缓存操作(redis.del(key)),并且设定合理的缓存过期时间。具体的步骤就是:.

2020-10-22 17:41:23 137

原创 Redis 淘汰删除策略

Redis 淘汰删除策略目前,Redis采用的是惰性删除+定期删除的方案1. 定时删除在设置键过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作; 1.1 定时删除优劣定时删除操作对于内存来说是友好的,内存不需要操作,而是通过使用定时器,可以保证尽快的将过期键删除; 对于CPU来说不是友好的,如果过期键比较多的话,起的定时器也会比较多,删除的这个操作会占用到CPU的资源;2. 惰性删除当key被操作时(如get,set)时,Redis 会被动..

2020-10-22 11:25:14 24

原创 MySQL 主从同步机制 undo log redo log和bin log的区别

1. 二进制日志 bin log 1.1 bin log的功能 MySQL为了兼容其它非事务引擎的复制,在server层面引入了 binlog, 它可以记录所有引擎中的修改操作。binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。 binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但可以通过查询通用日志来查看MySQL执行过的所有语句。...

2020-10-21 11:05:16 105

原创 消息队列消息丢失的原因及解决办法 RabbitMQ 和 Kafka

1. MQ一条消息的生产和消费过程 消息的丢失可能发生在Producer、Broker、Consumer 的任一阶段;2. RabbitMQ 2.1 生产者丢失数据原因 生产者将数据发送到 RabbitMQ 的时候,消息可能因为网络等问题在传入过程中给搞丢了。 2.1.1生产者端解决方法开启 RabbitMQ 事务 使用用 RabbitMQ 提供的事务功能,就是生产者发送数据之前开启 RabbitMQ 事务channel.tx...

2020-10-19 09:52:26 523 1

原创 消息队列消息持续积压 与 消息队列满解决方法

1. 消息队列消息持续积压 与消息队列满出现原因系统的某个部分出现了性能问题,来不及处理上游发送的消息,才会导致消息积压消息队列消息持续积压 与消息队列满出现原因 可以从生产者端与消费者端两个方面去思考,要么是发送变快,要么是消费变慢:Producer 端单位时间发送的消息增多,Consumer 端短时间内来不及消费; Producer 端单位时间发送的消息正常,Consumer 端因消费线程低效不能及时消费2. 如何优化MQ性能避免消息积压 消息队列的性能优化,需要优化...

2020-10-18 11:08:19 893 1

原创 Kafka 心跳机制 重复消费

kafka 心跳机制Kafka是通过心跳机制来控制消费超时,心跳机制对于消费者客户端来说是无感的,它是一个异步线程,当我们启动一个消费者实例时,心跳线程就开始工作了。心跳超时会导致消息重复消费。在org.apache.kafka.clients.consumer.internals.AbstractCoordinator中会启动一个HeartbeatThread线程来定时发送心跳和检测消费者的状态。每个消费者都有个org.apache.kafka.clients.consumer.internals

2020-10-18 00:03:03 328 1

原创 Kafka消费者负载均衡策略 消费者再平衡 consumer rebalance 心跳机制

消费者负载均衡策略一、消费者平衡过程(consumer rebalance) 1. 消费者平衡过程 消费者平衡过程是指 消费者重新加入消费组,并且重新分配分区Partition给消费者的过程。 2. 会引起消费者平衡的情况新的消费者加入消费组 某个消费者从消费组中退出(异常或正常) 增加订阅主题的分区(kafka的分区数,可以动态的增加,但不能减少) 某台broker宕机,新的协调器ZK当选 某个消费者在心跳会话时间内没有发送心跳请求(配置参数:...

2020-10-17 21:38:30 326

原创 kafka 如何解决消息队列重复消费

1、消息重复消费场景kafka实际上有个offset的概念,就是每个消息写进去,都有一个offset,代表他的序号,然后consumer消费了数据之后,每隔一段时间,会把自己消费过的消息的offset提交一下,代表已经消费过了,下次消费时,会继续从上次消费到的最后一次offset来继续消费。但是凡事总有意外,比如我们之前生产经常遇到的,就是你有时候重启系统,看你怎么重启了,如果碰到点着急的,直接kill进程了,再重启。这会导致consumer有些消息处理了,但是没来得及提交offset。重启之后,少数消

2020-10-17 20:47:19 348

原创 Linux操作系统的权限管理

Linux操作系统是一个多用户操作系统,这样就存在资源共享与隔离的问题。也就是说用户1的资源不愿意让用户2访问,用户3的资源与用户4的资源可以共享;同时,又存在超级用户(Root)访问所有用户资源的可能性。因此在Linux操作系统下就需要一套权限管理的功能。1. 基于用户角色的自主访问管理机制 Linux原生的权限管理机制是基于用户角色的管理机制,也就是UGO+RWX/ACL权限控制。UGO是User、Group和Other的简称;RWX则是Read、Write和Execute的简称;...

2020-10-17 15:54:31 56

原创 HTTP协议基础

1. HTTP 定义 HTTP(Hyper Text Transfer Protocol, 超文本传输协议),HTTP 是一个在计算机世界里专门在两点之间传输超文本(文字、图片、音频、视频等)等数据的约定和规范。HTML 就是最常见的超文本了,它本身只是纯文字文件,但内部用很多标签定义了图片、视频等的链接,再经过浏览器的解释,呈现给我们的就是一个文字、有画面的网页了。2.HTTP 是一个无状态协议无状态的优势:因为服务器不需要额外的资源来记录状态HTTP 的状态信息,可减轻服务器的负担,能..

2020-10-17 15:06:17 62

原创 count(*) 和 count(1)和count(字段)区别

执行效果上看: count(*) 包括了所有的列,相当于行数,在统计结果的时候,不会忽略字段值为NULL的列 ; count(1) 包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略字段值为NULL的列 ; count(列名) 只包括列名那一列,在统计结果的时候,会忽略字段值为值为NULL的列(这里的空不是指 空字符串“” 或者 0,而是表示null)的计数,即某个字段值为NULL时,不统计。执行效率上看: 列名为主键,count(列名)会比count(1)快 且 sel...

2020-10-13 08:55:18 198

原创 关于 HTTP GET/POST 请求参数长度最大值的理解误区

HTTP协议规范从未有对URL长度进行任何限制,也没有对GET/POST的参数值数据长度有限制。这个限制是特定的浏览器及服务器对它的限制。常见浏览器对URL的最大限制:Microsoft Internet Explorer (Browser) IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应。 2. Firefox (Browser) 对于Firefox浏览器URL的长度限制为65,536个字符。 3. S...

2020-10-10 20:25:28 193

原创 为什么Kafka性能强于RabbitMQ

一、Kafka VS RabbitMQ 检验一款消息队列的核心性能指标是 系统吞吐量 和系统延迟 。吞吐量测试测量队列在硬件(特别是磁盘和 CPU)使用方面的效率。 延迟测试测量每个系统传递实时消息的差别,这是实时任务关键型应用程序以及微服务架构的核心要求。结论:吞吐量:Kafka 在三个系统中的吞吐量最高,是 RabbitMQ 的 15 倍,Pulsar 的 2 倍。系统延迟:Kafka 在较高的吞吐量下提供了最低的延迟,同时还提供了强大的持久性和高可用性。Rabbit...

2020-10-08 15:40:51 127

原创 CAS下ABA问题及优化方案

CAS下ABA问题及优化方案一、什么是CAS二、什么是ABA问题三、解决方法1. 表结构加字段解决版本号: Version(更新数据时通过对比原始版本号,如果一致则更新,同时版本号version+1) 更新时间:update_time: update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP2. 优化锁粒度防止因乐观锁,导致并发失败次数较多,引起用户体验不好,需要.

2020-10-08 11:09:57 28 1

原创 安装Tensorflow优化cpu:AVX AVX2

几乎在所有情况下,当你使用通过 pip 安装的软件包时,会收到如下警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2。如果看到这类信息,最好卸载 TensorFlow,再根据你需要的选项通过 bazel 重新编译它。这样做的主要好处是可以提升计算速...

2019-03-24 15:43:24 2537

原创 Windows安装fastTest和skift 出现 ModuleNotFoundError: No module named 'fastText'

skift:scickit-learn Python fastText的包装器。安装 skift 后,在训练模型时出现:No module named 'fastText' 注意:安装skift本身不会安装fasttext,因为PyPI目前尚未保留官方Python绑定。因此安装skift之前需要安装一下依赖包:numpy的 SciPy的 scikit学习 fastTe...

2018-10-18 20:41:27 4188

原创 社交网络分析工具NetworkX和Gephi

 Gephi中文教程Networkx参考手册

2018-10-14 15:45:13 3556

原创 机器学习中,有哪些特征选择的工程方法?

特征选择是特征工程中的重要问题(另一个重要的问题是特征提取),坊间常说:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程尤其是特征选择在机器学习中占有相当重要的地位。机器学习做得好不好,被数据和模型共同影响,比如说,数据本身不可分,那么SVM等分类算法再牛逼,也不能完全正确分开。数据集本身是有内在特性的,数据集本身的特征决定了机器学习的上限。所以,一个机器学习算...

2018-10-12 18:21:10 471

原创 计算广告CTR预估的特征处理方法

 1.CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散特征呢?这样做的好处在哪里?A:在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:离散特征的增加和减少都很容易,易于模型的快速迭代。(离散特征的增加和减少,模型也不需要调整,重新训练是必须的,相比贝叶斯推断方法或者树模...

2018-10-12 16:34:06 2057

原创 清华邓俊辉教授 数据结构&算法 课程内容

2018-10-11 09:57:27 2162

原创 Python按单词或者字符翻转字符串

python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留: 如:‘ I love python! ‘ 转化为:‘ python! love I ‘ 两种解决方案: 方法1:从前往后对字符串进行遍历,如果第一个就是空格,直接跳过,直到第一个不是空格的字符,如果是单独的字母,同样跳过,否则的话,将该单词进行反转,再往后遍历,最后使用reserve方...

2018-09-20 18:09:18 1276

原创 Python如何进行内存管理的?

Python在进行内存管理从三个方面进行: 对象的引用计数机制Python内部使用引用计数,来保持追踪内存中的对象, 所有对象都有引用计数。引用计数增加的情况:一个对象分配一个新名称 将其放入一个容器中(如列表List,元组tuple和字典dict)引用计数减少的情况:使用del语句对 对象别名显示的销毁 引用超出作用域或被重新赋值sys.getrefcount()函数...

2018-09-16 11:31:59 136

原创 Python的垃圾回收机制

 Python中的垃圾回收是以引用计数为主,标记-清除和分代收集为辅。引用计数:python在内存中存储每个对象的引用计数,如果计数变成0,该对象就会消失,分配给该对象的内存就会释放出来。 标记-清除:一些容器对象,比如说list、dict、tuple、instance等可能会出现引用循环,对于这些循环,垃圾回收器会定时回收这些循环(对象之间通过引用(指针)连在一起,构成一个有向图,对象...

2018-09-15 21:29:32 98

原创 Summarization 文本摘要进展

文本摘要一直都是机器学习领域一个重要的热点,但是却有很大的难度。例如,给单篇文章起标题/摘要的时候,很难有词频作保证,而是需要模型可以理解内容,甚至做一些推理。在很多地方,摘要生成和机器翻译有类似之处。然而,和机器翻译不同的是,自动文本摘要的输入和输出很不平衡,此外机器翻译任务的输入输出序的列通常有一些词义层面上的直接对应,这种对应在摘要任务中却没那么明显。目前,自动文档摘要技术主要分为抽取式...

2018-09-04 16:51:01 1599

原创 MySQL两种主要存储引擎 MyISAM 和 InnoDB

 MyISAM引擎MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMCHK工具和用来恢复浪费空间的 MyISA...

2018-09-03 09:50:33 101

转载 批标准化(Batch Normalization)

在学习Batch Normalization之前,我们来看一道某知名互联网公司算法题。以下关于batch normalization说法正确的是()     A. normalization的均值⽅差计算是基于全部训练数据的     B. normalization的均值方差只基于当前的mini-batch     C. normalization对输入层的每一维单独计算均值方差...

2018-09-01 16:19:29 13256 2

转载 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f 可能是显式的或隐式的、线性的或非线性的。目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表...

2018-08-30 10:44:43 435

原创 kmeans聚类算法及复杂度

kmeans是最简单的聚类算法之一,kmeans一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类下数据的特点。算法原理随机选取k个中心点; 遍历所有数据,将每个数据划分到最近的中心点中; 计算每个聚类的平均值,并作为新的中心点; 重复2-3,直到这k个中线点不再变化(收敛了)。时间复杂度:O(I*n*k*m)空间复杂度:O(n*m)其中m为每个元素字...

2018-08-30 10:32:49 17886 3

原创 TensorFlow GPU集群训练配置 ConfigProto

常用的深度学习训练模型为数据并行化,即TensorFlow任务采用相同的训练模型在不同的小批量数据集上进行训练,然后在参数服务器上更新模型的共享参数。TensorFlow支持同步训练和异步训练两种模型训练方式。异步训练即TensorFlow上每个节点上的任务为独立训练方式,不需要执行协调操作,如下图所示:同步训练为TensorFlow上每个节点上的任务需要读入共享参数,执行并行化的梯度计...

2018-08-18 22:35:32 2616 1

原创 如何进行特征选择 实践

在做特征抽取的时候,我们是尽可能地抽取更多的Feature,但过多的 Feature 会造成 冗余(部分特征的相关度太高了,消耗计算性能),噪声(部分特征是对预测结果有负影响),容易过拟合等问题,因此我们需要进行 特征筛选。特征选择可以加快模型的训练速度,甚至还可以提升效果。接下来,我们了解下各种特征选择的方式。过滤型(Filter)评估 单个特征 和 结果值 之间的相关程度,...

2018-08-15 11:15:28 3678

单片机上用ADc808芯片进行信息采集处理

内容很全的 内有 AD系列 内部资源 以及一些常用代码

2013-08-12

05-温湿度传感器DHT11.rar

05-温湿度传感器DHT11 通过单片机控制可以采集温湿度 并显示出来

2013-05-30

HY-SRF05超声波系列模块

内有HY-SRF05超声波模块的详细资料 :硬件电路图,相关开发源代码 很详细的

2013-08-12

HC-SR04超声波测距资料

HC-SR04超声波测距资料 有详细的例子程序

2014-05-13

LCD12864说明书+例子程序

LCD12864说明书+例子程序 很全面的

2014-05-13

MSP430G2系列单片机原理与实践教程

MSP430G2系列单片机原理与实践教程

2014-05-13

智能循迹小车

智能循迹小车 可以通过红外对管实现循迹

2013-05-30

单片机上用ADC0809_芯片进行信息采集处理

单片机上用ADC0809_芯片进行信息采集处理 内有常用的一些 芯片资源 还有有关的一些源代码

2013-08-12

STM32固件库使用手册的中文翻译版

STM32固件库使用手册的中文翻译版 很适合ARM开发者 初始使用

2013-10-19

全国计算机等级考试上机考试与题库解析二级C

全国计算机等级考试上机考试与题库解析二级C 里面有大纲那内容 模拟软件 题库

2014-05-13

空空如也

空空如也

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

TA关注的人 TA的粉丝

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