使用MongoDB好几年,服务器版本自最后一次升级一直停留在3.4版本。MongoDB版本已经出了3.6和4.0两个版本。这次服务器版本升级到Ubuntu 18.04,顺便就把MongDB也升级一下。
MongoDB从3.4到3.6到4.0的升级,是一个逐步完成的过程,需要每个版本的服务器程序运行做调整。下面给出的是一个逐步升级的方案,已经对应的阿里云源,方便国内使用
(更多…)使用MongoDB好几年,服务器版本自最后一次升级一直停留在3.4版本。MongoDB版本已经出了3.6和4.0两个版本。这次服务器版本升级到Ubuntu 18.04,顺便就把MongDB也升级一下。
MongoDB从3.4到3.6到4.0的升级,是一个逐步完成的过程,需要每个版本的服务器程序运行做调整。下面给出的是一个逐步升级的方案,已经对应的阿里云源,方便国内使用
(更多…)本次服务器维护,将原来的一堆杂乱的资料重新整理了。但是出了些差错,之前的博客图片在备份的时候没有保存成功,好在数据库全保存了,不然文字图片都没了那是灾难。
本次维护会影响到之前推出的一些关键词工具的使用,会尽快恢复使用的,请随时关注博客的更新。
在Mongodb中,如果想检查一个文档是否存在,最高效的方法应该是使用find()+count(),而不是使用find_one()。
一般来说,我们第一感觉会认为find_one()最高效,但是find_one()每次查找会同时读取文档,这相比find()返回一个cursor,会慢不少。
David Mytton,在《Checking if a document exists – MongoDB slow findOne vs find》 (2013),指出了这个区别。
在我目前使用的pymongo 3.7.2中,无法像其文中所述,使用limit()判断返回的cursor是否存在,而需要count()判断返回的cursor是否包含文档。
因此,使用
db.collection.find({"username":"abc"}).count() db.collection.find({"username":{"$in":usernames}).count() # 如果usernames是一个列表
来替代:
db.collection.find_one({_id: "myId"}, {_id: 1})
用CNN做文本分类有一段时间了,关于训练数据不平衡的问题,我一直使用一个简单的方法,复制样本数据少的类别,在训练的时候,每个mini-batch都能相对均匀的抓取每个类别的信息。
今天一个偶然,去查了查CNN数据不均衡的问题,发现网上资料不少,主要围绕过采样的方法,看了下定义,原来就是我的这个操作方式,这种方式不适合在SVM里面使用,因为数据表现的信息恒定不变,可是为啥在CNN里面效果好呢?复制样本并没有添加任何的信息。只是为了让mini-batch更均衡的使用每个类别数据。
跟着疑问,追逐mini-batch的痕迹,在梯度下降的时候,由于计算量和机器的限制,无法一次性读入所有数据,而1个样本1个样本的处理,根本无法收敛,采用mini-batch,可以找到合适的下降步长和方向,快速收敛。同时,我们在使用mini-batch的时候,是用的sample batch,每一个batch,随机从总训练样本中抽取,这样每一个batch在梯度下降中的表现就不一样了。说到这,应该能联系上过采样在CNN中的好处了,一方面较为均匀的分配给每一个batch每一类别的信息,另一方面,增加了mini-batch的多样性,梯度下降能更好的找到最优或局部最优解。
当然,最好的方式还是增加信息量,即样本多样性,让模型的准确率更高,这个就是数据量大的说法了。
下次有机会做个对比实验。
之前参与智能音箱的项目,做语义理解,但硬件方面,实在是小白,这段时间腾出些时间,折腾下硬件,把家中的灯光整体改造一下。这篇文章从设计、硬件、软件、云服务、手机应用5个方面记录了这次改造中所获取的信息以及相关的程序代码。最终构建了一个通过手机控制和传统控制兼容的智能灯光。
花就在那,只有走近才能闻到花香
开始用python3,忘记codecs
从python官网下载安装包直接安装,mac会配置好python3的环境变量,测试是否安装成功在命令行输入:
python3
设置终端的python指令,直接链接python3
vim ~/.bash_profile:
alias python='python3'
Seq2Seq模型和蒙特卡洛搜索树(简称:MTCS)实现的对话系统,是一个信息检索的对话系统,seq2seq可以生成句向量,再通过欧式距离匹配历史对话中距离最近的问句,给出该问句的回答,同时对话框架采用蒙特卡洛搜索树,问答对来自于搜索树上的各个节点,因此可以实现前后文的对话,属于一种非理解式的多轮对话。