python
飞猫侠
渴望一流技术的三流技术宅
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 268 阅读 · 1 评论 -
Leetcode practice (9)
Longest Word in Dictionary题目描述:给定一个包含英文字符串的列表,请给出最长由列表内字符组成的英文字符串 思路:拿到题目,开始考虑构建字典树,然后遍历列表,统计出每个字符串在字典树中包含公共前缀字符的个数,挑选出包含最大个数即可,但是问题会存在同时包含最大公共前缀存在多个字符串的情况,所以需要对这部分字符串再进行末尾字符的排序,返回结果。这种解法,直观也容易想到,但是提交后时间复杂度还是较高,260ms,只击败了15%的提交结果,所以看起来不是很优的解法,后面看了别人的解法,原创 2021-02-13 00:52:19 · 262 阅读 · 1 评论 -
Leetcode practice (8)
Swap Nodes in Pairs题目描述:给定一个链表,反转每两个节点思路:首先需要对链表的结构非常熟悉,python对于链表的实现和表示十分简洁,拿到题目下意识会去思考关于链表的反转,需要改变每一个节点的指向,但是需要控制每两个节点进行反转,需要递归,一时半会还想不到如何递归。后来发现其实不需要走改变节点指向这一种思路,可以交换当前节点和下一个节点的值即可。 code:# Definition for singly-linked list.# class ListNode:#原创 2020-10-05 17:19:58 · 220 阅读 · 1 评论 -
python 多进程与多线程
由于python GIL的存在,让python 多线程很鸡肋,很多时候如果有并发的需求,则选择多进程来实现,但是多进程是很消耗资源的,而且进程之间不能资源共享,而且还会受到机器CPU核心数目的限制,因此在特定场景下针对不同需求会有一些取舍。传闻对于IO密集性的操作,比如,处理多个http 的请求,其实python多线程是完全可以发挥作用的,这种方式比多进程要高效的多(还好有高级py...原创 2019-12-10 20:40:20 · 227 阅读 · 0 评论 -
Learning Spark (1)
刚毕业那会,对大数据技术很感兴趣,那会也是该项技术被炒的热度很高的时候。但是出于各种各样的原因,对这方面的技术始终没有很好学习和应用。工作上多数情况下都还是单机训练模型,做特征工程。因此对这方面技术的学习逐渐疏忽。但是这严重的影响了一个算法工程师的处理数据能力的上限,因此,觉得这部分技术还是有必要加强一下。 关于Spark原理方面不做过多描述了,在单机环境下,采用...原创 2019-10-20 22:48:46 · 257 阅读 · 0 评论 -
tensorflow 源码学习 (一)
作为主流的机器学习框架,tensorflow的提供的接口变化很多,项目代码也比较复杂,为了让自己使用起来更得心应手,所以觉得还是有必要学习一下源码。个人觉得提升编程水平的两种最好方式,一个是自己造轮子,再一个就是阅读源码。 1.版本 2. 整体项目结构 这并不是tensorflow完整的项目结构,而仅仅是python的 tensorf...原创 2019-01-22 19:03:42 · 604 阅读 · 0 评论 -
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 · 318 阅读 · 0 评论 -
关于神经网络训练总结和思考
之前一直在无脑训练神经网络,定义好参数,网络,启动Session,feed给Graph,然后就是无休止的等待,有时候运气好,数据本身有很好的区分度,模型自然很快收敛,loss直线下降。但是当数据中混淆数据占比较大时,模型难免不会受到很大的干扰,简单来说就是,在当前batch_size下,你告诉模型向下走,下一个batch_size你告诉模型向上走。所以模型也蒙蔽,你丫的是要向上还是要...原创 2019-05-24 19:30:19 · 851 阅读 · 0 评论 -
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 · 291 阅读 · 0 评论 -
Leetcode practice (2)
Self Dividing Numbers题目描述:给定一个序列区间,序列中元素可以整除自己所包含的所有数字。 思路:遍历一遍序列区间,将每个数字拆分成个位数,让序列元素对其包含数字求余,将满足条件的元素插入列表即可。 code:class Solution: def selfDividingNumbers(self, left: int, right: int) -> ...原创 2019-06-14 00:33:46 · 186 阅读 · 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 · 206 阅读 · 0 评论 -
python 调用C/C++技术 (一)
之所以想研究下这类技术,是因为平时在调用tensorflow 或者sklearn这些封装较好得机器学习库的时候,很好奇他们前端应用接口和后端计算的交互方式,再者想科普一下一个概念,我相信很多刚接触编程语言,或者没有太深层次计算机基础的朋友都会对编程语言本身理解有偏差,这里甚至包括一些所谓的人工智能专家。 python这门语言本身比较古老了,之所以被人工智能这...原创 2019-08-24 01:16:33 · 460 阅读 · 0 评论 -
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 · 213 阅读 · 0 评论 -
Use tensorflow ----- Model release (1)
模型训练好之后,需要投入生产环境让模型产生价值。此时就需要将模型部署到生产环境。Tensorflow 有很好的生态系统,自行开发出了一套 tensorflow serving 作为模型的服务系统。这个将在下节介绍,本节采用 Flask + tensorflow 的方式让模型提供服务。 项目结构: 模型定义:import tensorfl...原创 2018-12-03 23:38:35 · 319 阅读 · 0 评论 -
Use tensorflow ----- Model release (2)
上节介绍了简单的 Flask + tensorflow 模型的部署方案,本节采用上节提到 tensorflow serving 来对模型进行部署。tensorflow serving 是基于C++开发的一套基于tensorflow模型服务框架,所以服务在性能上应该是支持高并发的。因此当线上流量过大时可以采用此方案来部署模型。依旧选用上节的模型做例子,同时这里需要安装一下doc...原创 2018-12-05 02:49:24 · 300 阅读 · 0 评论 -
logistic regression(3)
自己用底层语言去实现一下基本算法,并没有想象中那么容易,其中为了保证最终模型得到结果的正确性,在构建迭代算法时候真是一点不能马虎,尽管最终测试表面上通过了,这很大程度建立在iris数据集比较特殊的基础上,尝试接入同事从验证码当中提取的数据集来对验证码进行识别(该数据集也很规整),但是怎么训练得到的参数都不经人意,无奈。。。(有种强烈的挫败感。。。) 回过头来还是膜拜 sklearn 库,自身原创 2017-11-07 16:33:02 · 1026 阅读 · 0 评论 -
TensorFlow简单实例(一):linear_regression
http://www.longxyun.com/blog.html [原文地址] 很简单的线性回归例子,用的是Python2.7,Tensorflow1.0.# -*- coding: utf-8 -*-'''A linear regression learning algorithm example using TensorFlow library.Author: Ayme转载 2017-12-12 10:48:38 · 9746 阅读 · 2 评论 -
TensorFlow简单实例(二):logistic regression
http://www.longxyun.com/blog.html [原文地址] 目前机器学习中,逻辑回归多用来估计某种事物的可能性。例如用户在某电商平台搜索了一类商品,那么估计他的可能性,估计他想要哪一类或者哪几类商品,推荐给他。这在目前大部分电商平台处处可见。Logistic regression可以用来回归,也可以用来分类,主要是二分类。主要是二分类。还记得上几节讲的支持向量机转载 2017-12-12 11:08:24 · 5106 阅读 · 0 评论 -
TensorFlow简单实例(三):nearest_neighbor
http://www.longxyun.com/blog.html [原文地址] k-NN算法:有那么一堆你已经知道分类的数据,然后当一个新数据进入的时候,就开始跟训练数据里的每个点求距离,然后挑离这个训练数据最近的K个点看看这几个点属于什么类型,然后用少数服从多数的原则,给新数据归类。k-NN算法步骤:初始化距离为最大值计算未知样本和每个训练样本的距离dist得到目前K个最临转载 2017-12-12 11:17:02 · 560 阅读 · 0 评论 -
Learning Tensorflow (4)
搞了那么多准备工作,这节开始来训练一个模型吧,官网上有个关于手写识别完整的例子,模型预测率大概是 91% , 本来打算换一个数据集来玩,结果发现预测率出奇的低(可能是数据量不够,杀鸡用了牛刀),也许是我开打的方式不对. (含泪) 先引入两个损失函数:– 交叉熵: f1(x)=∑i=1ny′ilog(yi)\begin{align}f_1(x) = \sum_{i=1}^n y'原创 2017-08-23 16:55:29 · 2145 阅读 · 0 评论 -
Learning Tensorflow (3)
在学习 Tensorflow 官方文档时,简介介绍了用 tensorflow 针对生成的一些三维数据来拟合一个平面的例子。 import tensorflow as tfimport numpy as np# 使用 NumPy 生成假数据(phony data), 总共 100 个点.x_data = np.float32(np.random.rand(2, 100)) # 随机原创 2017-08-22 19:28:36 · 2174 阅读 · 0 评论 -
Learning Tensorflow (2)
上章节对比了一下 numpy 和 tensorflow 的计算方式,这节来具体阐述一下tensorflow的工作原理: Tensorflow是用数据流图(data flow graphs)技术来进行数计算的!!! 那么问题来了,啥是数据流图???(重要的问题问三遍) 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的原创 2017-08-21 15:12:00 · 2142 阅读 · 0 评论 -
Learning Tensorflow (5)
前节训练了一个简单的 softmax回归 的模型,并且增加了迭代次数以及更换了一下损失函数做了对比参照,这节来训练一个复杂点的模型 卷积神经网络,当然也仅仅是引用和改进一下官网的例子(谁让我是菜鸟呢~呜呜),才被某“算法大神”明确指出我算法太垃圾,连入门的算不上,(可怜的我内心受到了一万点伤害。。。),所以要更加要努力学习才能入 大神 的法眼。(其实此刻我的内心是不服气的,呼呼~~),往往有部分原创 2017-08-27 00:35:10 · 2100 阅读 · 0 评论 -
关于不同算法模型对比验证
在学习算法模型的过程中,(这里的算法模型均指机器学习中的算法模型),总会被各式各样的算法模型所迷惑,明明是干同一件事情,干嘛要出那么多幺蛾子? 背后复杂的数学理论这里就不多阐述了, 有很多相关资料非常专业,这里只陈述一下个人在学习中的感悟, 肯定存在一些主观臆断,欢迎大神拍砖指点. 这里主要针对分类问题,以机器学习中算法模型来进行分类在现实生活中应用场景相对比较多, 因此观点也针对这系列问原创 2018-01-23 21:05:06 · 4127 阅读 · 0 评论 -
logistic regression(4)
逻辑回归既是最简单的神经网络, 也是可解释性较强的广义线性回归模型, 同时又是具备概率假设的线性分类模型, 个人认为它是机器学习的一个基础核心. 因此怎么学习都不过分. 复杂的模型虽然有很好的学习能力, 能对非线性数据集进行很好的拟合, 但是往往其背后的原理难以尽知全貌. 而使用逻辑回归模型, 虽然对模型有很好的可解释性,但需要对数据特征有更深刻的认知, 才能构建出更为稳健靠谱的模型. 业...原创 2018-02-17 12:39:04 · 367 阅读 · 0 评论 -
using keras learn Neural networks (1)
nn是现在十分火热流行的机器学习算法,随着越来越多的科学家和工程师加入到该算法的研究和开发当中。该算法也越来越健壮,从最基本的Perceptron --->MLP--->(CNN,RNN) ----> CNN + RNN,更复杂的网络结构和组合不断涌现。越复杂的网络组合和结构让人越难以理解,但万变不离其宗,其都是由最基本的神经元构成。本系列文章围绕网络延变...原创 2018-08-07 21:26:59 · 354 阅读 · 0 评论 -
using keras learn Neural networks (3)
语言模型是现代NLP技术的基础,所有基于统计的NLP算法都是以语言模型作为基础来设计的。什么是语言模型?简单地说,语言模型就是用来计算一个句子的概率的模型,即P(W1,W2,...Wk)。利用语言模型,可以确定哪个词序列的可能性更大,或者给定若干个词,可以预测下一个最可能出现的词语。 训练一个能覆盖很多语料的语言模型有些难度,以下通过一个简单的RNN的demo来说明它的奇妙。 ...原创 2018-10-25 04:12:15 · 210 阅读 · 0 评论 -
Learning Tensorflow (1)
TensorFlow 是谷歌基于 DistBelief 进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow 为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。 —— [百度百科] 以上是百度百科对Tenso原创 2017-08-20 22:51:53 · 2120 阅读 · 0 评论
分享