开发备忘
文章平均质量分 93
糖果天王
编辑自我介绍~ 才能让更多人了解你…… 哎?真的吗?
展开
-
【SQLite3】使用 SQLite 为模型训练中的并行 dataloader 节省内存
我的训练数据读到内存里就有好几个 G 那么大了,多进程 dataloader 跑并行训练的时候内存都被打满了怎么办啊?!**解决方案:** 基于 SQLite 无限数量的并行读取做一个 dataset 呗,多少 dataloader 并行着读都行。原创 2022-08-22 19:44:24 · 943 阅读 · 1 评论 -
【Database】兼容 Python2 / Python3 适配编码的文件型数据容器
0x00 前言训练内存轻量化最近又在训练模型(炼丹),以前老抱怨,区区2万 samples 也好意思叫大数据,近期的任务似乎听到了我这个抱怨,纷纷都是什么“1700万个句子”,“4000个文档”的数据,对服务器内存一次次的进行着冲击。虽说我之前已经写过一个CIR(CorpusIterationReader)类实现的文章用来解决类似问题(哎?我那篇文章哪去了,被吃了么……emmmm,以后再重发一次吧。)但是那个类也只能让 pivot 以 “文件指针+instance指针” 的方式进行顺序存取,不是很好处原创 2020-07-21 16:20:04 · 430 阅读 · 0 评论 -
【Tensorflow】用于处理checkpoint中参数名称与矩阵数值的工具类
0x00 前言目前对于Tensorflow的模型参数文件,我们处理起来没有Pytorch的参数文件那样方便,并且现在任务中有个需求,要在“某几个参数矩阵中,将特定行的参数复制到某些其他行”。Pytorch的话就还好,因为毕竟是一群tensor被一个OrderDict包装起来的Python基本数据结构。同样的事情,在Tensorflow中处理起来会比较麻烦,于是考虑实现这个工具类 CheckpointMonitor 来提高处理效率。0x01 效果及API支持从Tensorflow的模型参数文件c原创 2020-07-04 17:24:12 · 768 阅读 · 2 评论 -
【Grpc】使用grpc配置通过端口访问的python服务
0x00 前言近期兴趣使然的技术调研越发的少了(TTS算一个),主要的都是为了项目和任务去研究的东西。目前的情况是为了节约显存,对一个较大的模型而言,比起使用4个worker来重复的占用显存,不如只占用一份显存,但是开启服务流式或触发式地处理不同项目的需求。于是 @caoyixuan93 学长向我推荐了GRPC,经过 @hongfeng 和 @phchang 的帮助,终于得以成功实现了一个小的...原创 2020-04-16 18:41:43 · 4564 阅读 · 0 评论 -
【Pytorch】入门Pytorch,初次上手请多指教
前言本篇为在.ipynb页面上的自学尝试记录, 可以在本人的个人主页上查看或下载自行测试,关于Windows10如何配置Pytorch请移步前篇文章即可~原创 2017-09-27 08:32:02 · 1685 阅读 · 0 评论 -
【Pytorch】Windows10下配置Pytorch环境
0x00 前言前言什么的也懒得说了…… 总之: 听说你Pytorch很牛, 不乐意让我Windows用, 而我又听说pytorch用来训练模型超好用, 不仅没头脑而且不高兴!我要在我的windows上配一个![NEW] PyTorch在0.4.0版已完美适配Windows,详情请见这篇文章 https://blog.csdn.net/okcd00/article/deta...原创 2017-09-18 19:24:54 · 5710 阅读 · 1 评论 -
【Theano】环境配置——“g++ not detected”
不管想要做些什么,配置环境总是最让人头疼的部分…… 看了半天的Theano,终于打算跑跑程序瞧瞧了…… 谁知道新的一轮配置才刚刚开始……P.S. 配置过程中的一些摸爬滚打记录一下,赖以之后参考使用原创 2017-02-07 00:24:03 · 14072 阅读 · 7 评论 -
【Pytorch 0.4.0】Windows操作系统下搭建Pytorch平台
0x00 前言就在今天,PyTorch 官方 GitHub 发布 0.4.0 版本,Pytorch主页上的OS也令人愉快的增加了Windows的选项。 这意味着PyTorch对于没有Linux/Unix系统,且没有远程开发机的学习者而言,更加易于上手便于使用了。 而对于非初学者而言,这次的改进合并了Tensor和Variable,着实是一项非常伟大的改进, 不仅如此,听说Caffe加入了...原创 2018-04-25 14:34:26 · 2097 阅读 · 2 评论 -
【editdistance】在Windows环境下配置python库editdistance
编辑距离是文本处理中很常见的一种判别相似度的方法, Wikipedia In computer science, edit distance is a way of quantifying how dissimilar two strings (e.g., words) are to one another by counting the minimum number of operati原创 2017-05-05 14:20:21 · 6856 阅读 · 10 评论 -
【TensorFlow】Windows10下配置TensorFlow环境
用TeamViewer中转+VNC连接来图形化, SecureCRT两重ssh跳转来改代码, 以及paste.ubuntu.com来复制粘贴, 这样的日子我已经受够了…… 我要在我的windows上配一个!原创 2017-05-04 14:01:35 · 14823 阅读 · 2 评论 -
【选课脚本】用Python网页爬虫来进行选(qiang)课 (更新至v1.0.8)
每当选课的时候,都如同打仗一般 都有自己想要的课,但是名额就那么一点 于是各显神通,有人用js,有人用chrome的console 人生苦短,我用Python原创 2017-06-01 08:53:18 · 24475 阅读 · 3 评论 -
【列表解析式】Python的单行操作秀
0x00 前言items = [line for line in open('test.txt', 'rb')]通常,我们会在代码中看到一些形似上面的炫目操作(什么你们觉得很正常?好嘛是我菜了QvQ)我一头猛扎进了python的怀抱,正是因为“人生苦短,我用python”,可能是相似的原因,我第一眼就看上了这种表达方式,并且乐于在自己的代码中使用这种方式来更加精简与清晰地生成所需要的列表。原创 2017-08-11 11:08:41 · 5241 阅读 · 0 评论 -
【Hadoop & Hbase】大数据存储系统编程_读出写入
0x01 编译环境jdk 1.7hbase 0.98hadoop 2.6Ubuntu Linux 14.04.20x02 目标其中我的任务编号为5,即Sort-based Distinct Sort-based Distinct 根据group by key 排序 然后同一个group的都会在一起 统计输出原创 2017-05-14 14:48:16 · 1865 阅读 · 0 评论 -
【TensorFlow_Fold】深度探究 Blocks for Composition
0x00 前言想写点东西试试,结果接下来就老老实实躺在了Pipeline上; 决定学跑之前先学爬,老老实实啃一下源码和官方文档,虽然官方还在一点点更新,不少地方还是空白的,不过先动起来多敲点试试看,老等着别人喂饭多不好呀原创 2017-04-21 11:36:26 · 3462 阅读 · 1 评论 -
【TensorFlow_Fold】计算图连接初探 Diamond计算图调试历程
先前开了个TFF自学的坑,震惊于计算图连接的陷阱之多,代码之繁,头砸键盘于第二篇文章的Markdown前;进行到计算图不同的block间的连接这一部分,但是td中琳琅满目的函数对输入输出却有着千奇百怪的格式需求,名为TypeError的Exception表示:“你给我走!我不想再看到你!”;调试许久无果,耗时耗电不说,心力即将枯竭……然后在我决定起身去吃饭的时候。。。。。。原创 2017-04-20 14:57:56 · 2150 阅读 · 0 评论 -
【TensorFlow_Fold】深度探究 Blocks for Input
0x00 前言 想写点东西试试,结果输入就死活搞不定,一万个TypeError; 决定学跑之前先学爬,老老实实啃一下源码和官方文档,虽然官方还在一点点更新,不少地方还是空白的,不过先动起来多敲点试试看,老等着别人喂饭多不好呀; TFF的基本单位之一是Block,看了下Markdown的结构,个人打算按照这个顺序来看看原创 2017-04-14 16:30:36 · 2413 阅读 · 2 评论 -
【Pytorch】RuntimeError: arguments are located on different GPUs
0x00 前言Pytorch里使用optimizer的时候,由于其会记录step等信息, 有时会希望将optimizer的内容记录下来,以备之后继续使用, 那么自然而然的会想到使用API中自带的 torch.save(object, path) torch.load(path)再配合上 optimizer.state_dict()原创 2017-11-07 17:59:58 · 7231 阅读 · 0 评论 -
【Pathlib】面向对象的Python3的文件系统路径
【Pathlib】面向对象的Python3的文件系统路径 Pathlib:将文件系统路径作为对象使用 《pathlib —— Object-oriented filesystem paths》0x00 前言 目前,Python 科学栈中的所有主要项目都同时支持 Python 3.x 和 Python 2.7,不过,这种情况很快即将结束。去年 11 月,Numpy 团原创 2018-02-06 15:44:58 · 1049 阅读 · 0 评论 -
【Lightgbm】AttributeError: 'LGBMRegressor' object has no attribute 'best_iteration'
0x00 情景复现使用 lightgbm 进行简单便捷的fit操作,尝试使用early_stopping, 以选择最好的一次迭代进行预测时,调用best_iteration时报错:import lightgbm as lgbgbm = lgb.LGBMRegressor(objective='binary', num_leaves=6...原创 2018-03-21 11:15:23 · 10157 阅读 · 0 评论 -
【sudo】ImportError: pip包未安装在当前环境的解决方案
0x00 前言通常在使用 pip 指令安装 Python 需求的包时,会需要使用 sudo pip install 获取权限,或者,在 Jupyter Notebook 里可以采用 ! 的语法调用 pip 指令直接安装需要的包,例如:! pip install xlrd! sudo pip install xlrd但有时安装后发现当前环境或虚拟环境(conda-env)中,其实是因为...原创 2019-01-16 21:58:04 · 1244 阅读 · 0 评论 -
【Docker】在Linux下安装与配置Docker环境
0x00 前言没有太多说的,这个可能也到处都有…… 每个人的方法大概也大同小异?主要是自己第一次接触docker,就当作简单的做一个记录与总结吧。(注意:本篇和以前的环境配置不同,这次主要着眼于问题的解决)0x01 记录查看当前系统版本Linux 系统需要不小于 3.10.x下述输出的意思是:系统为Linux,名称为c9,版本为3.10.0,64位系统[chend@c9 ~]$...原创 2018-11-20 11:17:32 · 21585 阅读 · 2 评论 -
【HTTPServer】借助Python建立简易的HTTP服务
0x00 前言局域网内有个想传的文件,但是跨平台了怪麻烦的。于是想着建立个http服务来传吧,但是又懒得下载东西,哦对了我有Python,那就足够了~0x01 防火墙打开端口为了开启服务,首先需要打开一个对外端口以便其他机器访问进来,Python中自带的HTTP Server默认占用的是端口8000,当然也可以自己选定特定端口。如果直接使用命令无法访问的话,那应该就是被防火墙挡住了(...原创 2018-11-22 11:48:20 · 10300 阅读 · 9 评论 -
【Multiprocessing】Python多进程内存共享数据队列SMQueue
0x00 前言自从先前研究了下Python的多进程计算(原文链接)之后,深深地感受到多进程处理的美好,并决定运用到模型训练时,作为 feed data 的数据处理模块使用,实现工具类 SharedMemoryQueue。但是众所周知,python的进程间通讯比较复杂,更别提大量进程的时候……想想就头疼……但是python本身就是万金油,为啥我非要用python的机制呢,用python调用...原创 2018-09-30 12:05:33 · 3207 阅读 · 2 评论 -
【Tensorflow】逻辑斯特回归(Logistic Regression)的简单实现
### Introduction为了简单的介绍和讲解一下Tensorflow的基本操作,我决定做一个简单的逻辑斯特回归实现与代码讲解,但不太会用Markdown的方式来展现一个JupyterNotebook,姑且就按照“说明—实例”的方式来解释逐个代码块好了。原创 2018-10-07 02:30:53 · 1193 阅读 · 0 评论 -
【DataProcessor】简易的通用多进程数据生成工具类(Advanced for HVD)
0x00 前言基于先前实现的Python多进程共享内存队列实现的SMQueue(原文地址),0x01 实现思路0x02 Source Code# coding: utf-8# ==========================================================================# Copyright (C) 2018 All right...原创 2018-10-03 17:46:52 · 1319 阅读 · 0 评论 -
【Julia】Linux下配置Julia交互开发环境(Julia notebook)
0x00 前言近期Julia这门语言突然被拉入了大众视野,我也是被一句 “Walk as Python,Run as C” 深深的吸引住了, 如果它没有在吹牛,那么这门语言说不定确实是我所想要的,那么,学学看吧?本篇文章主要用于介绍如何搭建便于学习与测试的REPL环境,先在Linux上试试水, 毕竟一旦Jupyter Notebook搭建起来之后,网页版的交互式环境就已经可以不受操作系...原创 2018-08-18 16:28:17 · 4775 阅读 · 0 评论 -
【Multiprocessing】采用多进程计算处理数据
0x00 前言在数据处理方面,通常会将较为简单的源数据存于本地磁盘中, 每次使用时读取,经过生成函数生成模型可以直接使用的训练数据, 而这种数据通常为矩阵的形式,考虑到padding位的情况下通常较大, 那么,在源数据的量较大,而生成的数据的空间占用增量巨大无法存于本地, 就需要采用生成一个,传输一个,消耗一个,之后再生成的形式。线性终归是缓慢的,此时就需要多线程进行处理, 如下...原创 2018-06-28 21:23:32 · 1194 阅读 · 0 评论 -
【Tensorflow】自主实现包含全节点Cell的LSTM层(Cell-Holding LSTM Layer)
0x00 前言常用的LSTM,或是双向LSTM,输出的结果通常是以下两个: 1) outputs,包括所有节点的hidden 2) 末节点的state,包括末节点的hidden和cell 大部分任务有这些就足够了,state是随着节点间信息的传递依次变化并容纳更多信息, 所以通常末状态的cell就囊括了所有信息,不需要中间每个节点的cell信息, 但如果我们的研究过程中需要用到这些c...原创 2018-06-28 17:17:30 · 974 阅读 · 0 评论 -
【Tensorflow】自主实现部分连接层(Partial Connect Layer)
0x00 前言通常而言,在NLP领域的机器学习中时常会有这样的需求:argmaxP(wi∣θ)argmaxP(wi∣θ) argmax P(w_i \mid \theta) 较为常见的做法是有多少个单词就做一个多少维的全连接层加softmax,但是, 如果词汇表 |V||V||V| 很大的情况下,会有大量的计算(例如目前的工作中,词汇表的数量为80k), 在我们已知只需要计算其中某些词...原创 2018-06-28 15:54:40 · 1816 阅读 · 0 评论 -
【Reverse】Tensorflow中屏蔽Padding处理变长序列的双向LSTM
0x00 前言通常我们处理双向LSTM的时候,序列长短不一参差不齐,就不可避免的需要进行padding, 实际上句子长度可能如下所示,为[2, 4, 5],就需要被padding成这样才能作为矩阵传入计算:array([[1, 2, 0, 0, 0], [2, 1, 4, 3, 0], [3, 2, 1, 5, 4]], dtype=int32)对于p...原创 2018-04-19 20:11:46 · 4533 阅读 · 2 评论 -
【TensorFlow_Fold】TFF, 初次见面请多指教
TensorFlow Fold is a library for creating TensorFlow models that consume structured data, where the structure of the computation graph depends on the structure of the input data. For example, this mod...原创 2017-03-23 15:08:30 · 2431 阅读 · 0 评论 -
【TensorFlow_Fold】配置在Jupyter Notebook下的Fold代码环境
TensorFlow_FoldTensorFlow_Fold in Jupyter Notebook 效果预览如上图,环境为 CentOS7 + Python with TensorFlow1.0(Fold include)How to add kernel for Jupyterjupyter里一般是没有我们自己设定的env下的python的原创 2017-04-07 17:05:56 · 1660 阅读 · 3 评论 -
【简易Python爬虫】 初试爬虫_简易Python图片爬虫实现
前言之前的电话面试中被问到了是否会爬虫,简单的就行啊,爬虫爬虫……我还是自学个最简单的吧,至少得理解下这是啥意思啥原理吧于是,照葫芦画瓢……试试看咯,顺带记录在这里备忘,毕竟是第一次用,请允许我逐行百度逐词谷歌所以就变成了这个完全注释版——二话不说上代码#coding=utf-8 import urllibimport re def downloadPage(ur原创 2015-07-22 16:48:05 · 2654 阅读 · 0 评论 -
【中文分词】基于ICTCLAS的Python中文分词
前言在ICT实习获得的第一个任务与中文分词有关,本想用Stanford中文分词器,苦于VirtualBox中的Ubuntu跑Stanford的中文分词程序的时候会出现OSError: Java Command Failed 的错误。负责OS这方面的队友在纠结不前之时,老师提醒了我:为什么不去试试别的分词器呢?网上搜索了一下中文分词,一眼看到这个ICTCLAS,哈哈哈我正在这里实习为何不试试原创 2015-07-20 23:31:08 · 5921 阅读 · 6 评论 -
【W3s学JSON】JSON入门概念学习笔记 _W3school
概念JSON:JavaScript 对象表示法(JavaScript Object Notation)。JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。每一章中用到的实例{"employees": [{ "firstName":"Bill" , "lastName":"Gates" },{ "原创 2015-07-20 15:22:23 · 1795 阅读 · 0 评论 -
【多文件操作】使用C++筛选合并多文件的尝试
今天接到一个小任务,说是让把好多文件(大概2800来个,总大小超过1G)中的信息进行筛选,整合到一个文件里方便接下来的操作。那么,无可避免的就需要用到多文件读写。那么,该如何批量打开多个文件进行读写操作呢?众所周知 freopen(filename,r/w,i/ostream)的第一个参数filename需要是一个常量const char*,即便文件名是有序的,我们也没办法将变量传参进去。原创 2015-07-17 23:56:18 · 1398 阅读 · 0 评论 -
【py/pyspider抓取】进行简单的静态网页抓取
前言python脚本写了一段时间之后,大致理解了python抓取的一些简单用法,也尝试着对一些大站点进行了抓取于是觉得,咱来试着用用看既有的平台吧……话说回来,python的话是这样的#-*- coding: gbk -*-from bs4 import BeautifulSoupimport urllib2import sysimport logging im原创 2015-08-25 13:16:52 · 4485 阅读 · 0 评论 -
【类继承】跑来跑去的类继承_Tencent
腾讯笔试里有道题也是让人头晕的累的一塌糊涂,就是给了一群类,谁是谁的父类,子类,集成类,其中还有属性,还有析构什么什么的,问输出的是什么(其实是考察运行的顺序)那么,备忘记录下吧。c++ 类的继承与派生一、基本概念1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。转载 2015-04-01 00:39:47 · 479 阅读 · 0 评论 -
【XShell】XShell中中文显示乱码解决方法
并不需要很多语言说明(其实是查了半天发现啊啦根本不需要说明找到就行),感觉放着两张图以后能找到在哪就行了两张图结束战斗,简单明了~~~File-Properties文件-属性Advanced-Encoding-utf8-CS-Enter编码从默认改成UTF8-简体中文原创 2015-03-29 11:51:53 · 1179 阅读 · 0 评论 -
【sizeof】关于各种东西的大小_Tencent
之前腾讯模拟笔试的时候,出了一道sizeof的题目,问没有规定大小的各种数据类型指针的size,于是这次还是写个文章测试顺便备忘一下。原创 2015-03-26 15:42:42 · 732 阅读 · 0 评论