自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022年重新开始

这两年一直伴随着外界环境的影响(疫情),很多原本的计划和设想都超出了意料之中,自己也到了而立之年,感叹时光荏苒。当初的初心也改变了许多,不再对技术有更多的热情,每日被业务和现实问题缠绕着,困惑着,迷茫着,焦虑着;感觉自己还是要重拾初心,人活一世,职业只是人生的一部分,不是全部;尽管平凡也要活出自己,短短几十载,且行且珍惜。最后安利一下,自己的公众号。...

2022-05-05 01:28:19 306 1

原创 Leetcode practice (10)

Tuple with Same Product题目描述:给定一个无重复且为正整数的数组,返回一个四维元组(a, b, c, d), 元组内部满足 a * b = c * d 且a != b != c != d, 求满足这样的元组个数 思路:最简单的思路就是暴力求解,嵌套遍历数组4次,将符合条件的组合计数即可,但是发现这样复杂度是 O(n^4), 使用c++也超时了,因此要找到一种更优的解法。先从条件 a * b = c * d下手,数组中两个元素的乘积,其实就是从数组中选取两个进行组合,即 C(2,.

2021-02-13 23:35:30 171 1

原创 Leetcode practice (9)

Longest Word in Dictionary题目描述:给定一个包含英文字符串的列表,请给出最长由列表内字符组成的英文字符串 思路:拿到题目,开始考虑构建字典树,然后遍历列表,统计出每个字符串在字典树中包含公共前缀字符的个数,挑选出包含最大个数即可,但是问题会存在同时包含最大公共前缀存在多个字符串的情况,所以需要对这部分字符串再进行末尾字符的排序,返回结果。这种解法,直观也容易想到,但是提交后时间复杂度还是较高,260ms,只击败了15%的提交结果,所以看起来不是很优的解法,后面看了别人的解法,

2021-02-13 00:52:19 200 1

原创 Leetcode practice (8)

Swap Nodes in Pairs题目描述:给定一个链表,反转每两个节点思路:首先需要对链表的结构非常熟悉,python对于链表的实现和表示十分简洁,拿到题目下意识会去思考关于链表的反转,需要改变每一个节点的指向,但是需要控制每两个节点进行反转,需要递归,一时半会还想不到如何递归。后来发现其实不需要走改变节点指向这一种思路,可以交换当前节点和下一个节点的值即可。 code:# Definition for singly-linked list.# class ListNode:#

2020-10-05 17:19:58 152 1

原创 2020年中静心篇

2020年,自己莫名的对技术失去了原本的热情,脑子里曾经幻想设计些有趣而又有技术含量的项目,也因动机的关系,失去了行动力。这也许就是现实和理想的差距吧,总感觉自己在技术上的深耕一定程度上也换不来阶级的越迁,工作上更多的是思考怎么汇报,怎么解释,怎么确保投入产出比,逻辑上没毛病,只是会从心里上感觉到疲惫。方法论,思考性的东西看了不少,总感觉差那么点意思,估计也是因为自己水平不够,在技术上的钻研不够,也间接的导致自己的认知上有偏差。 因为这种认知的偏差会导致自己在技术累积学习上所花...

2020-08-03 02:34:49 231 1

原创 Algorithm ----- Binary Search

关于二分法之前一直没有深入去体会该思想,平时在工作当中能采用 O(N) 复杂度就可以完成的任务,也不会太过考虑将复杂度降低到 O(logN), 但是二分法用的好,着实可以优化算法的时间复杂度,因此这是一个好方法,有必要掌握熟练。创建一个有序的数组import numpy as nparr = np.sort(np.unique(np.random.randint(0, ...

2020-01-31 19:51:51 227

原创 JAVA训练XGBOOST

2020年开篇,但是好像没啥特别的,参加个公司年会,时间就这么过去了,就这么迎来了2020年。当然,我们国家传统是过了春节才算是新年,所以原则上2020年还没来到,但是日历上已经变了,现在2020年1月1日,觉得还是要随便写点什么,记录点什么吧。 一直用python去训练模型,考虑用点不一样的技术,用java去训练一个模型吧,这样也方便和java微服务以及大数据集成在...

2020-01-02 00:37:22 4311 19

原创 python 多进程与多线程

由于python GIL的存在,让python 多线程很鸡肋,很多时候如果有并发的需求,则选择多进程来实现,但是多进程是很消耗资源的,而且进程之间不能资源共享,而且还会受到机器CPU核心数目的限制,因此在特定场景下针对不同需求会有一些取舍。传闻对于IO密集性的操作,比如,处理多个http 的请求,其实python多线程是完全可以发挥作用的,这种方式比多进程要高效的多(还好有高级py...

2019-12-10 20:40:20 171

原创 Learning Spark (1)

刚毕业那会,对大数据技术很感兴趣,那会也是该项技术被炒的热度很高的时候。但是出于各种各样的原因,对这方面的技术始终没有很好学习和应用。工作上多数情况下都还是单机训练模型,做特征工程。因此对这方面技术的学习逐渐疏忽。但是这严重的影响了一个算法工程师的处理数据能力的上限,因此,觉得这部分技术还是有必要加强一下。 关于Spark原理方面不做过多描述了,在单机环境下,采用...

2019-10-20 22:48:46 202

原创 Leetcode practice (7)

Split a String in Balanced Strings题目描述:给定一个平衡字符串,即偶数长度字符串。字符串只包含字符 L 和 R,要求输出字符串当中所有对称字符子串数目。 思路:构造一个栈放置字符串首字符在栈底,依次遍历字符串除首字符剩下字符,若当前字符和栈底元素不相等,则将栈底元素出栈;若当前字符和栈底元素相等,则将当前字符入栈;每次出栈后,若栈为空,则计数,最终将计数结果...

2019-10-14 05:45:32 152 1

原创 Leetcode practice (6)

Climbing Stairs题目描述:爬楼梯,一次只能爬1step or 2step,给定一个非负数,问有多少种不重复的爬法。 思路:乍看一下题目,还在思考如何枚举出所有可能的情况,eg,给定2,那么组合就是【1,1】,【2】;给定3,那么组合就是【1,1,1】【1,2】【2,1】, 其实用递归的思路去想就是当元素值等于1 or 等于2时,停止。后面发现该题目就是Fibonacci数列的...

2019-10-13 00:06:55 125

原创 Leetcode practice (5)

Valid Anagram题目描述:给定两个字符串, 判断是否包含相同数目的字符. 思路:分别统计两个字符串包含字符频率, 最后进行比较即可, 这里给出两种不同语言的实现方式. python用dict进行字符频率统计, 最后比较dict是否相等即可(这里比想象中要高级, 应该是内部方法的实现). cpp用数组实现, 预分配一个长度为26的数组, 其索引对应26英文字母, 依次遍历...

2019-10-04 23:34:10 124

原创 Algorithm string ----- reverse

字符串相关算法是计算机算法处理当中最常规的操作,下面记录字符串反转的相关方法、实现以及算法分析。算法实现 首先,创建一个字符串str_ = "algothrim" 方法一,将字符串转换为列表,调用reverse方法即可。# way_1def func_1(s): l = list(s) l.reverse() return...

2019-10-04 22:14:58 182

原创 Leetcode practice (4)

Best Time to Buy and Sell Stock题目描述:给定一个股票价格序列,找出最大的盈利。 思路:该题目有两种思路,第一种,直接暴力枚举所有后一时间点和前一时间点之间的价格差,找出最大值;第二种,属于动态规划思想,遍历整个序列,每次都重新选择最低价格点和最大价格差,最后得出最优解。 code:# 暴力枚举public class Solution { pu...

2019-09-13 22:55:05 127

原创 Leetcode practice (3)

DI String Match题目描述:给定一个只包含D和I字符的字符串,按照字符串长度进行递增递减,出现I表示递增,出现D表示递减,最后输出列表。 思路:按照题目描述,遍历输入字符串,进行条件判断后进行递增or 递减即可。 code:class Solution(object): def diStringMatch(self, S): lo, hi = 0, ...

2019-09-05 07:54:33 158

原创 tensorflow 编程技术 ------ 双循环

tensorflow是优秀的机器学习框架,python作为其前端语言调用API,可以很便捷实现各种机器学习模型,但是也因为其静态图的缘故让编程本身不够友好,有自己一套的编程的规定。为了可以实现真正的端到端,开发与算法的剥离,因此所有和算法相关的代码尽可能的采用tensorflow图来定义,这样利用tensorflow-serving框架就可以实现模型服务化,即便不采用该框架,那服务...

2019-08-29 13:46:50 543

原创 python 调用C/C++技术 (一)

之所以想研究下这类技术,是因为平时在调用tensorflow 或者sklearn这些封装较好得机器学习库的时候,很好奇他们前端应用接口和后端计算的交互方式,再者想科普一下一个概念,我相信很多刚接触编程语言,或者没有太深层次计算机基础的朋友都会对编程语言本身理解有偏差,这里甚至包括一些所谓的人工智能专家。 python这门语言本身比较古老了,之所以被人工智能这...

2019-08-24 01:16:33 377

原创 Leetcode practice (2)

Self Dividing Numbers题目描述:给定一个序列区间,序列中元素可以整除自己所包含的所有数字。 思路:遍历一遍序列区间,将每个数字拆分成个位数,让序列元素对其包含数字求余,将满足条件的元素插入列表即可。 code:class Solution: def selfDividingNumbers(self, left: int, right: int) -> ...

2019-06-14 00:33:46 139 2

原创 Leetcode practice (1)

Height Checker题目描述:返回未站在正确位置的学生的最小人数。 思路:先对原输入数组排序,再将排序后的数组与原数组做比较,统计它们对应元素不相等的个数即可。 code:class Solution: def heightChecker(self, heights: List[int]) -> int: temp = heights.co...

2019-06-10 02:08:58 155

原创 Tensorflow 那些年踩过的坑

指定GPU import osgpu_no = '0' # or '1'os.environ["CUDA_VISIBLE_DEVICES"] = gpu_no 定义TensorFlow训练配置 config = tf.ConfigProto()config.gpu_options.allow_growth = True # 配置GPU内存分配方式,按需增长,很关键c...

2019-06-06 19:24:02 619

原创 Sorting Algorithm(2)

在轮子越来越多,越来方便调用的今天,基础算法的实现也被淡忘,虽然工作中不太需要自己造基础轮子,但其背后的思想对提高编程水平还是很有指导意义,特此记录。 创建随机数组import numpy as nparray = np.random.randint(0, 100, 1000)冒泡排序def bubble_sort(input_array): arr...

2019-05-27 13:25:54 236

原创 NLP ----- Bert with Sentiment Analysis

Bert模型可谓是在2018年NLP领域的大杀器,它的刷新了各种数据集上的NLP任务新高度,好像预示着人类在让机器理解自然语言的道路上又近了一步。google research方面也公布出了模型和代码,让该模型走近千家万户。作为模型的搬运工,自然不能错过把这样的神器收入囊中的机会。官方也给出了pretraining和fine-tuning的代码,但仅仅是调试官方的代码还是不能将模型很...

2019-05-25 17:47:30 1116

原创 关于神经网络训练总结和思考

之前一直在无脑训练神经网络,定义好参数,网络,启动Session,feed给Graph,然后就是无休止的等待,有时候运气好,数据本身有很好的区分度,模型自然很快收敛,loss直线下降。但是当数据中混淆数据占比较大时,模型难免不会受到很大的干扰,简单来说就是,在当前batch_size下,你告诉模型向下走,下一个batch_size你告诉模型向上走。所以模型也蒙蔽,你丫的是要向上还是要...

2019-05-24 19:30:19 770

原创 技术思考--- 静心篇

很多时候明明大家都在做同一件事情,学习同样的事物,但时间总会拉开彼此的差距。求知是人的本能,但现实生活中,多数人追求的并不是如此。这也许就是凡人和大师之间不可逾月的鸿沟。心中总有太多杂念,心生污秽,则智止矣。 再谈机器学习,从事相关工作也有些时间,还没走到从入门到放弃这条路,机器学习作为一门学科其实也并不是啥新科学,只是近些年被炒作到风口浪尖,甚至和人工智能联系在...

2019-05-21 20:37:57 304

原创 Algorithm tree ----- DFS、BFS

一个多叉树结构如下图所示:创建如图所示的数据结构,用镶套字典实现。# 创建多叉树d = {"x": {"a": {"b":{}, "c":{}, "d": {}}, "e":{"f":{"g": {}, "k": {}}}}}深度优化遍历# dfs 递归实现ans = -1nodes = []def dfs(d, deep): global ans ...

2019-05-20 06:04:38 237

原创 关于DNN,CNN,RNN的一些思考

关于DNN(这里指的dense),CNN,RNN之前一直没搞清楚这三种网络到底本质的区别在哪里?经过一些反复的思考和实验,结合tensorflow提供的API,将一些感悟和想法记录一下。 首先,创建一个 batch_size=1 的序列,假设该序列是经过词嵌入处理后的,如下:x_inputs = tf.constant(np.random.random(10*...

2019-03-21 01:49:40 1814

原创 tensorflow 源码学习 (一)

作为主流的机器学习框架,tensorflow的提供的接口变化很多,项目代码也比较复杂,为了让自己使用起来更得心应手,所以觉得还是有必要学习一下源码。个人觉得提升编程水平的两种最好方式,一个是自己造轮子,再一个就是阅读源码。 1.版本 2. 整体项目结构 这并不是tensorflow完整的项目结构,而仅仅是python的 tensorf...

2019-01-22 19:03:42 528

原创 Use tensorflow ----- Model release (2)

        上节介绍了简单的  Flask + tensorflow 模型的部署方案,本节采用上节提到 tensorflow serving 来对模型进行部署。tensorflow serving 是基于C++开发的一套基于tensorflow模型服务框架,所以服务在性能上应该是支持高并发的。因此当线上流量过大时可以采用此方案来部署模型。依旧选用上节的模型做例子,同时这里需要安装一下doc...

2018-12-05 02:49:24 246

原创 Use tensorflow ----- Model release (1)

       模型训练好之后,需要投入生产环境让模型产生价值。此时就需要将模型部署到生产环境。Tensorflow 有很好的生态系统,自行开发出了一套 tensorflow serving 作为模型的服务系统。这个将在下节介绍,本节采用 Flask + tensorflow 的方式让模型提供服务。      项目结构:           模型定义:import tensorfl...

2018-12-03 23:38:35 264

原创 using keras learn Neural networks (3)

        语言模型是现代NLP技术的基础,所有基于统计的NLP算法都是以语言模型作为基础来设计的。什么是语言模型?简单地说,语言模型就是用来计算一个句子的概率的模型,即P(W1,W2,...Wk)。利用语言模型,可以确定哪个词序列的可能性更大,或者给定若干个词,可以预测下一个最可能出现的词语。 训练一个能覆盖很多语料的语言模型有些难度,以下通过一个简单的RNN的demo来说明它的奇妙。 ...

2018-10-25 04:12:15 158

原创 Keras with R (RNN)

        之前学习过了,MLP,CNN,所以RNN也不能落下。下面以经典数据集IMDB来训练一个RNN模型。IMDB是25,000条影评数据,被标记为正面/负面两种评价。影评已被预处理为词下标构成的序列。关于词下标构成的序列,即是将词从词典中查找对应的索引构成的序列。       eg:            上图即表示了一个序列样本,序列中的数字代表词在词典中的索引,若以该索引...

2018-08-12 15:09:34 3562

原创 using keras learn Neural networks (2)

        上节探究了模型输入和神经元输出的关系,其主要是为了疏理清楚一些之前的思维误区,为了更好的理解RNN。同时也是因为自己在之前的学习过程始终存在一些不明白的地方,正所谓理越辨越明,学习之路任重而道远,特此记录下来,可以帮助到同时也存在相同困惑的童鞋们(天才少年可以跳过,不浪费时间),若理解有误,欢迎拍砖纠正。         词嵌入是现在基于nn处理各种NLP任务的First st...

2018-08-12 04:17:30 192

原创 using keras learn Neural networks (1)

          nn是现在十分火热流行的机器学习算法,随着越来越多的科学家和工程师加入到该算法的研究和开发当中。该算法也越来越健壮,从最基本的Perceptron --->MLP--->(CNN,RNN) ----> CNN + RNN,更复杂的网络结构和组合不断涌现。越复杂的网络组合和结构让人越难以理解,但万变不离其宗,其都是由最基本的神经元构成。本系列文章围绕网络延变...

2018-08-07 21:26:59 292

原创 Data structure ----- List

        做为一个调包侠,长期用现成的轮子干活,已经严重限制了个人编程水平的提升。所以想要从本质上提升自己的编程水平,还是要抽时间自己造轮子。虽然说现在语言越来越高级,轮子越来越丰富,但是内功心法才是成才之道。        链表做为基础的线性结构,很多复杂的数据结构基本由其演变而来,因此有必要熟练掌握。        实现代码如下:# include<iostream&...

2018-07-17 17:35:58 270

原创 NLP ----- TF-IDF

   作为文本处理比较经典的方法,本文通过手动构造 tf_idf 矩阵和 R 的 tm包当中提供的 DocumentTermMatrix 函数方法的构造进行对比,来一种比较直观的解读.   1.构造原始文本数据 doc_1 <- "见鬼了"doc_2 <- "我见鬼了"doc_3 <- "我真的见鬼了"text_data <- c(doc_1, doc_2, doc_...

2018-05-16 20:56:03 1884 2

原创 logistic regression(4)

    逻辑回归既是最简单的神经网络, 也是可解释性较强的广义线性回归模型, 同时又是具备概率假设的线性分类模型, 个人认为它是机器学习的一个基础核心. 因此怎么学习都不过分. 复杂的模型虽然有很好的学习能力, 能对非线性数据集进行很好的拟合, 但是往往其背后的原理难以尽知全貌. 而使用逻辑回归模型, 虽然对模型有很好的可解释性,但需要对数据特征有更深刻的认知, 才能构建出更为稳健靠谱的模型. 业...

2018-02-17 12:39:04 294

原创 关于模型建立的深入思考

        随着人工智能被推上了风口浪尖,支撑其理论基础的机器学习也被媒体,培训机构,各种公众号迅速炒热。但是它本身并不是神秘玄学,只是随着计算机越来越强大而能够从数据中学习规律的理论方法,而这些理论方法的汇总就被称为机器学习。        那么机器到底在学习什么呢?学习模型。模型是什么?模型是能够描述现实事物的通用、简洁、精准表述。这种表述可以是实体的,也可以是虚拟的,eg.实体: 车...

2018-02-12 23:37:06 490

原创 关于不同算法模型对比验证

在学习算法模型的过程中,(这里的算法模型均指机器学习中的算法模型),总会被各式各样的算法模型所迷惑,明明是干同一件事情,干嘛要出那么多幺蛾子? 背后复杂的数学理论这里就不多阐述了, 有很多相关资料非常专业,这里只陈述一下个人在学习中的感悟, 肯定存在一些主观臆断,欢迎大神拍砖指点.   这里主要针对分类问题,以机器学习中算法模型来进行分类在现实生活中应用场景相对比较多, 因此观点也针对这系列问

2018-01-23 21:05:06 3927

原创 关于时间利用的一点思考

时间管理对于现代人快节奏,高强度下的生存环境显得格外的重要了,所以很多优秀的人都在时间管理上给出了不少相关的建议,大致翻阅了很多关于时间管理的书籍,它们有很多共同点,其中碎片时间这个关键词几乎都会被提到.但是个人觉得这个看似很有道理,但是还是要因人而异,不然不但不能达到理新的效果,还会杀敌三千自损三百.   首先必须要承认,个体之间是有很大差异的,那么个体之间的大脑的活性就是有区别的.而且对于

2018-01-14 16:41:33 545

转载 TensorFlow简单实例(三):nearest_neighbor

http://www.longxyun.com/blog.html [原文地址]  k-NN算法:有那么一堆你已经知道分类的数据,然后当一个新数据进入的时候,就开始跟训练数据里的每个点求距离,然后挑离这个训练数据最近的K个点看看这几个点属于什么类型,然后用少数服从多数的原则,给新数据归类。k-NN算法步骤:初始化距离为最大值计算未知样本和每个训练样本的距离dist得到目前K个最临

2017-12-12 11:17:02 473

空空如也

空空如也

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

TA关注的人

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