自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用国外 vps 为 switch 设置代理服务器加速游戏下载

switch 在国内通过 wifi 连网后如果直接下载游戏的话速度特别慢,据说要挂一个晚上才能下载成功一个游戏。当我尝试下载时发现进度条基本不动,怀疑软件源是在国外的原因,于是想到可以通过国外 vps 代理中转的方式。

2023-10-06 01:03:34 1717

原创 利用python与线性回归预测房价

本文利用pandas对Ames房价数据集进行数据分析,并挑选其中对房价影响程度前十的特征做了线性回归以预测房价。一、导入数据集import pandas as pdtrain_data=pd.read_csv('./train.csv')train_data Id MSSubClass MSZoning LotFrontage LotArea Street Alley

2021-06-13 22:02:07 2604 2

原创 mysql用户权限管理命令总结(包括添加用户)

创建用户CREATE USER 'username'@'%' IDENTIFIED BY 'password';授权GRANT all privileges ON databasename.tablename TO 'username'@'%' (with grant option);加with grant option表示允许将权限赋予别的用户设置与更改用户密码SET PASSWORD FOR 'username'@'%' = PASSWORD('newpassword');撤销用户权

2021-05-23 23:33:57 260

原创 linux的screen使用方法介绍(附常用命令)

对于一些需要持续挂在linux服务器后台运行的程序,尤其是那些在执行之前还需各种交互的程序,利用screen能有效防止本机网络的断连,以下是主要的使用方法介绍。1.创建一个screen会话(session)screen -S test2.detach当前会话(把当前会话放入后台运行)CTRL+a+d3.attach到test会话(重新进入test会话)screen -r test4.查看现有的所有会话screen -ls5.修改已存在的会话名称screen -S old_session.

2021-03-24 21:08:23 1073 1

原创 程序员的算法趣题(python解法)-09:不缠绕的纸杯电话

问题解题思路dp[i]表示一共有i对小朋友时可能的结对方式。假设当前考虑的是第i对,x是第i对最右边的那个人,只有与x相邻或者与x之间隔了偶数个人的小朋友才能与x相连。这样x和与x相连的小朋友就把所有小朋友分成了两部分,其中一部分的对数为j,另一部分的对数就为i-j-1,这两部分的情况排列组合一共有dp[j]*dp[i-j-1]种。所以现在关键在于找到j的取值规律。按逆时针方向(顺时针也行)考虑所有能与x相连的小朋友,他们两个人把所有小朋友反正两个部分后,易知其中一部分的对数j的范围是0到i-1。

2021-02-10 21:45:58 112

原创 程序员的算法趣题(python解法)-08:受难立方魔方阵

问题解题思路dp[j]表示和为j的情况下总共可能出现的次数。一开始没有数字和为0,所以dp[0]=1代表和为0的出现次数为1。之后增量地考虑这些数字,即每次考虑新增一个数字的情况。设该数字为i,则当前所有dp[j]的值都需相应的加给dp[j+i]。代码nums=[1,14,14,4,11,7,6,9,8,10,10,5,13,2,3,15]dp=[0]*(sum(nums)+1)dp[0]=1largest=0for i in nums: for j in range(larg

2021-02-08 23:58:37 179

原创 程序员的算法趣题(python解法)-07:水果酥饼日

问题解题思路假设第一块蛋糕的值为1,后面每块蛋糕的值与前一块蛋糕的值之和为完全平方数。当分到最后一块蛋糕时,确保其与第一块蛋糕的值之和也为完全平方数,至此,此题得解。代码def dfs(pre,n,visited,square,res): if len(visited)==n: return res if pre+1 in square else False for i in range(2,n+1): if i not in visited an

2021-02-06 22:23:49 627

原创 程序员的算法趣题(python解法)-06:走楼梯

问题解题思路方法一:递归递归终止条件为A和B相遇或者A已经超越了B。否则就分别枚举他们两个人走楼梯的级数的所有可能情况。方法二:动态规划这一问题可以转换为求A走了偶数次后到达楼顶的情况数。因为假设A走了2xxx后到达楼顶,则可以视作A走了xxx次的同时B也走了剩余的xxx次,这时他们必定会相遇。故可以用动态规划求解,dp[j]表示当A到达j点时走了i次时的所有的可能情况数。代码中直接用了滚动数组的方式优化了空间复杂度,所以用的一维数组,滚了10次,取其中偶数次的dp[10]。代码方法一

2021-02-05 23:38:27 237 3

原创 程序员的算法趣题(python解法)-05:有多少种满足字母算式的解法

问题解题思路先提取出所有不重复的字母,再给这些字母分配数字,把分配完的数字代回原表达式中,用eval验证新表达式,若返回True,则符合题意,解法数加一。代码编写过程中利用了permutations函数枚举所有的数字排列情况,并在验证每一种排列情况时利用字典记录了字母与数字的映射关系。代码import refrom itertools import permutationsexpression='READ+WRITE+TALK==SKILL'words=re.split('\W',exp

2021-02-04 16:09:26 166

原创 程序员的算法趣题(python解法)-04:落单的男女

问题解题思路这道题目表述得可能不是很清晰。假设最后分完两组后,整个队伍分成前半部分和后半部分。题目问的是无论怎么分,使得前半部分中男女人数不相等,并且后半部分男女人数也不相等,这样的到场顺序有多少种。本题用动态规划(dp)完成,dp[i][j]表示当前已经来了i位女性和j位男性时符合题目要求的个数。为了使得前半部分男女人数不相等,i=j的情况不合法。为了使得后半部分男女人数不相等,10-i=20-j的情况不合法。代码dp=[[0]*21 for i in range(11)]dp[0][0

2021-02-03 20:22:03 174 4

原创 程序员的算法趣题(python解法)-03:日期的二进制转换

问题解题思路关键在于如何枚举1964年10月10日-2020年7月24日这段时间的日期范围。若完全自己实现是很麻烦的一件事情,因为在枚举年月日时(年份是1964-2020,月份是1-12,直接for循环就可以),但每个月的天数是不一样的,尤其是二月份的天数还要考虑是否为闰年。所以实现起来较为繁琐,考虑直接利用工具库来完成。方法一是利用datetime,方法二是利用pandas。代码方法一:from datetime import datetime,timedeltares=[]t=d

2021-02-03 14:34:46 455

原创 程序员的算法趣题(python解法)-02:还在用现金支付吗

问题解题思路用递归求解,递归结束条件是当coins中的硬币全部被考虑过(i==n),此时若target为零,则表明正好凑齐所需的总额,全局变量res加一。当i<n时,当前考虑的硬币为coins[i],可以选取t枚该硬币,并需保证target-t*coin>=0且usable-t>=0(选取t枚改硬币后剩余的target值不为负且剩余的可选硬币数不为负)。代码coins=[10,50,100,500]n=len(coins)res=0def dfs(target,i,usab

2021-02-02 20:03:55 167 2

原创 程序员的算法趣题(python解法)-01:数列的四则运算

写在前面在跨年活动中很荣幸获得力扣送的2020年度实体勋章和《程序员的算法趣题》实体书。最近正好过年期间有时间阅读此书,但由于书中所用解题语言大多为ruby和javascript,故决定在本专栏挑选其中一些经典的题目用python代码来完成。原书电子版可在https://leetcode-cn.com/leetbook/detail/interesting-algorithm-puzzles-for-programmers/上查看。问题解题思路求解空间是1000-9999,也就是所有的四位正

2021-02-01 17:56:44 209

原创 利用python比较两个不同的目录,并根据其中文件异同制作拆分目录

利用python比较两个文件夹中文件的异同,把相同的文件放入共通文件夹中,在原文件夹中保留不同的文件。具体见以下代码:import osimport shutilimport filecmp#传入需要比较的两个文件夹名dir1_name,dir2_name,和需新建的共通文件夹名common_dir_namedef make_different_dirs(dir1_name,dir2_name,common_dir_name): shutil.copytree(dir1_name,com

2021-01-04 15:13:54 298 1

原创 在uniswap上挂限价单的方法(pyuniswap源码解析)

一、安装pyuniswappip install pyuniswap二、pyunsiwap使用方法以购买BAS代币进行举例说明:from pyuniswap import pyuniswap#所需交易的bas代币的合约地址bas_address = '0xa7ed29b253d8b4e3109ce07c80fc570f81b63696'#在infura上申请一个节点地址当作providermy_provider = 'https://mainnet.infura.io/v3/'#实

2020-12-20 20:17:33 2837 3

原创 pip install时出现Microsoft Visual C++ 14.0 is required的解决方法

1.官网下载Visual Studio社区版https://visualstudio.microsoft.com/zh-hans/downloads/2.安装时勾选‘使用c++的桌面开发

2020-11-07 01:14:13 758

原创 飞桨论文复现课程‘Few-shot Video-to-Video Synthesis’的论文解读

最近百度特别推出了全球顶会深度学习论文复现营。由百度资深算法工程师与中科院高级研究员联合授课。课程链接https://aistudio.baidu.com/aistudio/education/group/info/1340本文解读的论文题目是‘Few-shot Video-to-Video Synthesis’。Video-to-video指的是给定一段语意级别(semantic)的视频片段,生成一段真实(photorealistic)的视频片段。例如给定一段连续的舞蹈动作片段,经过模型后会生成真人的

2020-08-06 15:53:01 309

原创 强化学习DQN、DDQN和Dueling DQN的原理介绍与PARL核心代码解析

摘要本文主要介绍DQN算法的基本原理,以及在它基础上改进的DDQN和Dueling DQN,介绍完后会结合对应的PARL代码进行解析说明(PARL 是一个高性能、灵活的强化学习框架)。三篇相关的论文地址如下,接下去的三个小节会围绕这三篇论文的重点部分进行剖析。DQN:Human-level Control Through Deep Reinforcement LearningDDQN:Deep Reinforcement Learning with Double Q-learningDueling

2020-07-23 00:19:32 27930 4

原创 强化学习Q-learning的理解与python实现

Q-learning介绍在介绍Q-learning这一基础的强化学习方法之前,首先要知道Q值代表什么。Q值翻译成中文是状态动作价值的意思,通俗一点来讲就是假设有个无所不知的上帝(先验),在凡人(智能体)当前处于某一状态s时,他可以从一定范围的动作(如a、b、c)中选择一个执行,而上帝会根据凡人的选择给出一个分数(因为上帝无所不知,所以知道凡人在选择了动作a之后会发生的所有事情)。比如凡人选择了a,上帝会给出80分,选择b的话上帝会给70分,选择c的话上帝会给60分,那么凡人在当前状态下肯定会选择分数最高的

2020-06-27 02:55:14 2473 1

原创 《百度构架师手把手教深度学习》学习心得

最近参加了《百度构架师手把手教深度学习》这门课程,课程中介绍了非常多的飞桨全流程研发工具,例如paddlehub,paddleserving等。其中最简单易上手的我觉得是paddlex,因为它有图形化界面的版本,可以不用写一行代码完成深度学习的任务,下面以化妆品分类这个任务为例,看看paddlex是如何使用的。一、导入数据集把需要的图片整理好导入到paddlex中,paddlex会自动划分训练集,验证机和测试集。二、配置模型参数调参也是按提示用鼠标选择就行三、完成训练完成训练后paddlex

2020-06-18 11:03:53 214

原创 docker+paddleserving部署手写数字识别模型

任务概述本文利用docker+paddleserving实现手写数字识别模型在服务器上的部署。首先需要通过pip install paddle-serving-server和pip install paddle-serving-client 安装paddleserving。最后部署完成以后,预测的结果如下:一、实现思路1.用paddle自带的mnist数据集训练一个手写数字识别模型2.把训练后的模型转换成paddle_serving模型3.利用docker+paddle_serving在服务器

2020-06-13 20:09:58 1757 7

原创 当梵高遇上路飞——海贼王op风格迁移

任务概述今天的任务是利用paddlehub实现海贼王op的风格迁移。风格端图像选择的是极具代表性的梵高的《星月夜》。最终效果如下: 当梵高遇上路飞——海贼王op风格迁移 实现思路1.截取需要用到的视频片段2.把视频片段中的每一帧图像提取出来3.把提取出的图片通过StyleProNet模型进行处理,处理完后保存新的图片4.把处理后的图片再拼接成视频具体代码用到的库:f

2020-05-31 00:27:52 381

原创 利用飞桨paddlehub对“青春有你2”评论进行内容审核并绘制词云

最近“青春有你2”持续霸占各大榜单,本文爬取爱奇艺“青春有你2”下的评论,利用paddlehub对评论进行内容审核,通过审核后的数据进行词频统计并绘制词云。首先,去爱奇艺视频地址底下爬取评论并保存在本地。由于爱奇艺的评论是利用ajax异步加载的,通过观察找到发起ajax请求url的规律,每次把url中的last_id替换成前一次响应结果中的最后一个id即可。#请求爱奇艺评论接口,把每句评论保存...

2020-05-03 13:37:04 717

原创 利用PaddlePaddle框架实现手势识别

数据集与任务数据集链接:https://aistudio.baidu.com/aistudio/datasetdetail/2182数据集里面是0-9的手势图片,我们的任务就是识别出图片中的手势代表的数字。这里使用CNN(卷积神经网络)中的经典模型LeNet实现。下图为LeNet的基本结构。具体代码首先导入本次所需要用到的库import osimport timeimport r...

2020-04-11 13:12:52 2104 1

原创 linux服务器无法连接外网的情况下安装python离线包

很多情况下公司内部的开发环境是无法连接外网的,此时通过ssh连接上去以后是没办法用pip install命令安装想要的python包的。报错如下:Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError…此时只能通过安装离线包的...

2020-03-24 19:41:50 2110

原创 python读取配置(手写方法,不调用configparser)

一般python读取配置文件可以直接调用configparser这个标准库。但是其有section的限制,即配置文件的格式需为类似如下:[address]host=127.0.0.1port=8888[db]db_port=3306db_user=root如上,加粗的即为section部分。然而,对于一些简单的配置文件并不需要分块。下面是自己手写的读取配置文件的一段代码,功能是把...

2020-03-19 20:04:56 104

原创 Python通过蒙特卡罗法计算π值

我们知道以r为半径的圆的面积是πr2\pi r^2πr2,以r为边长的正方形的面积是r2r^2r2,两者面积之比即为π\piπ的值。具体算法是模拟一个边长为1的正方形,随机在其中生成n个点,当n趋向于无穷大时,整个正方形就被这n个点所填满(下图中蓝色区域)。在这n个点之中,统计出落入以1为半径的扇形区域中的点的个数(下图中橙色区域),记为c。于是扇形面积与正方形的面积之比可以用c/n表示,可...

2020-01-05 19:01:40 2758

原创 Numpy、Pandas、Matplotlib三者的利弊分析

Numpy、Pandas、Matplotlib三者的利弊分析这三个库是使用python进行数据分析中最常用到的,numpy通常用来进行矢量化的计算,pandas通常用来处理结构化的数据,而matplotlib是用来绘制出直观的图表。numpy底层是用标准C语言实现,补充了python语言所欠缺的数值计算能力,充分优化了python的运行效率,也是其它数据分析及机器学习库的底层库。numpy的基...

2020-01-05 18:52:02 7275 1

原创 cookie和session的区别

cookie以键值对的形式存在浏览器里,根据域名划分,每次发送请求时浏览器会把对应域名的所有cookie放在请求头里以全量的形式发给服务器,通常大小限制为4K。session存在服务器的数据库中,在数据库中根据不同的session_id建立记录,而这个session_id是要浏览器通过cookie传过来的,所以如果禁用cookie的话session也是用不了的。session比cookie相对安全...

2019-12-23 00:24:02 94 1

原创 数据库中的事务特性

事务是对数据库一系列增删改查操作的集合。事务有四大特性,即ACID,分别表示原子性,一致性,隔离性和持久性。原子性(Atomicity):事务中的一系列操作像原子一样,是一个不可分割的整体,要么全部执行,要么全部不执行。一致性(Consistency):事务运行前后的状态保持一致,即数据库从一个正确的状态转变为另一个正确的状态。隔离性(Isolation):事务在运行时是处于隔离中的,其在开...

2019-12-22 01:05:21 139

原创 tcp协议中的三次握手和四次挥手

三次握手,四次挥手形象地形容了客户端与服务端根据TCP协议建立连接的过程。先说三次握手。首先客户端和服务端都处于closed状态,然后服务端监听某一端口处于listen状态。接着当客户端请求建立连接时,会发送一个SYN报文给客户端,并指明客户端初始序列号x,此时客户端处于syn-sent状态。当服务端收到客户端的SYN报文后,会回复自己的SYN报文,并将序列号初始为y,同时将x+1作为ack的值...

2019-12-21 00:31:53 130

原创 谈谈对进程、线程、协程的理解

进程是程序在计算机上的一次动态运行,是系统分配资源的最小单位。而线程被称为轻量级的进程,与进程是包含关系,一个进程可以包含多个线程。线程是系统分配内核的最小单位,创建线程所消耗的资源远小于进程。多个进程拥有各自的独立空间存放数据,互不干扰,有专门的进程间通信方法。而多个线程由于共享一个进程的资源,只能使用全局变量进行通信,在操作共享资源时往往采用同步互斥的方式,在操作前上一个线程锁,操作完后释放这...

2019-12-19 23:48:43 195

原创 B+树:MySQL数据库中建立索引的数据结构

在MySQL数据库中是通过B+树的数据结构建立索引的。相比二叉树,B树是一种多叉树,总层数更少,磁盘io次数也会相应减少。而与B树不同的是,B+树把索引和数据分开存储,数据以链表的形式存放在B+树的叶子结点上,使得非叶子结点每一层能存放更多索引,层数也相应减少,树结构更加‘矮胖’,使得磁盘io次数降为最小。值得注意的是,只有主键是聚簇索引,即叶子结点存放的是原始数据。其余的索引是非聚簇索引,叶...

2019-12-19 00:23:59 101

原创 .py文件后台运行不占用终端方法

一共三步实现.py文件后台运行,可以挂在服务器上永久执行1.程序第一行加解释器路径#! /user/bin/env/python32.用命令 chmod 774 +文件名给程序添加可执行权限x3.执行时后面加 &如./(文件名) &执行成功会在终端打印进程号,要结束的话用kill-9+进程号终止程序...

2019-12-16 12:12:23 377

原创 IO多路复用的三种常用方法:select,poll和epoll

IO事件的特点是当不满足某些条件时会阻塞,当程序运行碰到阻塞IO时,会等待阻塞结束再继续运行。如果有很多IO事件,当前事件是阻塞状态,但是第二个IO事件是非阻塞状态可以直接执行的,程序还是会等第一个IO事件运行结束再执行第二个IO事件。要是此时第二个IO事件又变成阻塞状态了,程序又要等待它阻塞结束,这样是很浪费时间的,明明可以先执行不阻塞的IO事件效率最高。IO多路复用有效地解决了这一尴尬的难题...

2019-12-15 22:04:46 772

原创 利用CORS实现跨域

CORS(cross origin resource sharing)是w3c制定的一套标准,使得ajax发出的请求可以跨域,跨域指的是访问不同ip地址和端口号的另一网站。在此之前想通过ajax实现跨域只能借src或者jsonp,但也只能发送get请求,而CORS这套跨域资源共享标准,实现了真正意义上的跨域,只要满足CORS条件,任何请求方法都能成功实现跨域。CORS的基本原理是浏览器发送跨域请...

2019-12-13 22:16:16 145

原创 说说django中的缓存机制

为了缓解服务器的压力,django中的缓存指的是把一些经常需要用到的资源保存下来,使得服务器在收到请求后不用执行视图函数,直接返给浏览器缓存中的数据,一般可以通过python3 manage.py createcachetable命令创建缓存表,把缓存的数据以键值对的形式保存在本地的数据库中,然后通过在视图函数前添加装饰器@cache_page(time)的方式,或者在模板里添加{% load c...

2019-12-12 22:22:30 196

转载 pandas基础介绍与基本命令

pandas基础pandas介绍Python Data Analysis Librarypandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入 了大量库和一些标准的数据模型,提供了高效地操作大型结构化数据集所需的工具。pandas核心数据结构数据结构是计算机存储、组织数据的方式。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数...

2019-12-06 13:21:19 167

转载 数据分析day07

奇异值分解有一个矩阵M,可以分解为3个矩阵U、S、V,使得U x S x V等于M。U与V都是正交矩阵(乘以自身的转置矩阵结果为单位矩阵)。那么S矩阵主对角线上的元素称为矩阵M的奇异值,其它元素均为0。import numpy as npM = np.mat('4 11 14; 8 7 -2')print(M)U, sv, V = np.linalg.svd(M, full_matric...

2019-12-04 17:44:01 125

转载 数据分析day06

符号数组sign函数可以把样本数组的变成对应的符号数组,正数变为1,负数变为-1,0则变为0。ary = np.sign(源数组)净额成交量(OBV)成交量可以反映市场对某支股票的人气,而成交量是一只股票上涨的能量。一支股票的上涨往往需要较大的成交量。而下跌时则不然。若相比上一天的收盘价上涨,则为正成交量;若相比上一天的收盘价下跌,则为负成交量。绘制OBV柱状图dates, clo...

2019-12-03 17:55:12 115

空空如也

空空如也

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

TA关注的人

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