自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸡瞎讲

矮油!一个菜鸡在瞎讲

  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

原创 OpenBLAS矩阵乘法源码结构分析

用于记录阅读分析OpenBLAS源代码的各种知识点,防止遗忘。这里主要记录OpenBLAS的代码结构,因为确实比较复杂,直接看源代码很可能比较蒙比,如果知道其结构,看起来就比较轻松了。至于OpenBLAS矩阵乘法的算法,这篇不涉及,我会在另一篇文章中简单(瞎jb)分析。OpenBLAS代码总体上可以分成三个层次:1.接口层 在OpenBLAS接口层中,运算又分为三个类型,分别是level1到3,

2017-04-30 02:11:54 11745 6

原创 tensorflow的数据输入

tensorflow有两种数据输入方法,比较简单的一种是使用feed_dict,这种方法在画graph的时候使用placeholder来站位,在真正run的时候通过feed字典把真实的输入传进去。比较简单不再介绍。比较恼火的是第二种方法,直接从文件中读取数据(其实第一种也可以我们自己从文件中读出来之后使用feed_dict传进去,但方法二tf提供很完善的一套类和函数形成一个类似pipeline一样的

2017-01-09 20:57:29 28357 11

原创 scrapy爬取使用jsonp技术的网页

爬取bilibili的视频页面时,发现一个问题,就是up主、视频title、视频超链接等都能爬取到,但是却无法直接爬取到其播放量、硬币数等等参数,通过抓包我们可以发现,bilibili.com直接返回的html页面中,这几个我们比较关心的参数都没有被渲染进来:<div class="v-title-info"> <div class="v-title-line"><i cla

2016-08-09 10:10:21 6164 1

原创 安装scrapy各种问题

安装scrapy最简单的还是通过pip插件,叫他自己安装,因为scrapy涉及到的python库实在是太多了,依赖非常复杂,不过就算是pip插件,在安装的时候也会出现各种问题,下面介绍下本渣遇到过的几个问题:1.首先是最恼火的Unable to find vcvarsall.bat这个问题的原因主要是python通过环境变量找到的编译器和本机安装的版本不同。解决方法可以使用这个(前提是装过vc++,

2016-07-16 15:03:21 5162 2

原创 scrapy-redis分布式爬虫原理分析

scrapy是python的一个非常好用的爬虫库,功能非常强大,但是当我们要爬取的页面非常多的时候,单个主机的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来,人多力量大。而scrapy-redis就是结合了分布式数据库redis,重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫。 scrapy-

2016-06-29 23:01:24 18353 9

原创 Python中的defer库

说到defer库,就必须先提到python中的一个比较特别的网络库twisted。 他与其他网络库不同的地方在于,对于很多用连接的并发,他不会使用多线程去实现。比如网络库同时发出10个请求,对于一般的多线程网络库,就会初始化10个线程,每个线程负责一个连接。当一个线程遇到了耗时操作(比如发出request之后等待response,或者向本地磁盘写数据),他就会阻塞。多线程网络库的问题在于,大量的线

2016-06-23 23:48:43 7029

原创 python实现线程池

参照c++的线程池,使用python的threading库实现线程池。import threadingimport time# 线程池的任务,包含一个可调用对象和一个参数数组class ThreadTask(object): def __init__(self, job, args=list()): self.task = job self.args =

2016-06-13 22:17:37 2032

原创 爬虫出现Forbidden by robots.txt

先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决。 使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息Forbidden by robots.txt,看来是请求被拒绝了。开始因为是淘宝页面有什么保密机制,防止爬虫来抓取页面,于是在spider中填入各种header信息,伪装成浏览器,结果还是不行。。。用

2016-06-10 18:39:49 31603 4

原创 安装lxml时出现 Unable to find vcvarsall.bat

被这个错误搞了一下午,出这个错误一般都是安装scrapy图中安装lxml出错的,网上很多资料都说是没有安装vc 2008导致缺少组件便以失败,解决方法是安装vc2008或者安装mingw,试了一下都没效果,可能我这边环境比较复杂。最后知乎上看见一个解决方法比较简单: http://www.zhihu.com/question/26857761 就是首先用pip安装wheel,但后直接下载版本对应

2016-06-05 23:21:21 1466

转载 数据库中乐观锁与悲观锁的概念

作者:ChenLuLouis 出处:http://www.cnblogs.com/chenlulouis/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-chenlulouisBlog。锁( locking )业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统

2016-05-01 22:50:42 772

原创 UE4的NetWork简单原理

UE4内部封装实现了大量和网络相关的代码,使得我们不需要再自行编写很多底层的网络同步代码了(连接主机,套接字传输等等)。我们只需要实现相关的函数接口,并进行一定的设置,就可以实现网络游戏的功能了。 下面先讲讲UE4NetWork的几个要点: *1.UE的网络同步和Replicate密切相关,从字面上理解,就是Server到Client的信息同步。 2.大部分的自动化Replicate都是Ser

2015-12-11 17:34:27 11798 3

原创 error c2678解决方法

使用UE4时发生 error C2678: binary ‘==’ : no operator found which takes a left-hand operand of type ‘const HUDMessage’ (or there is no acceptable conversion)最后可以定位到这里int32 Find(const ElementType& Item) cons

2015-11-30 14:01:58 16840

原创 UE4简单巡逻BehaviorTree的构建

上次我们搞了一个C++的AI代码初始化,但是只有C++初始化,AI是不会行动的。这次我们接着初始化之后的步骤,搞一个可以简单巡逻并且发现玩家之后会追踪的简单AI逻辑。 主要逻辑如下: 1.平时按照固定路线巡逻 2.发现玩家之后,追踪玩家 3.拾取玩家视野之后,继续追踪最后一次看见的位置几秒,之后放弃 4.放弃之后,继续按照原路线巡逻 5.如果听到声音,警惕地向声音发生处张望几秒 6.张

2015-11-23 15:05:29 5382

原创 UE4实用类PawnSensingComponent简介

PawnSensingComponent是涉及AI编程时候的常用类,实现了很多强大的功能,对于AI感知帮助很大。 主要功能有 1.AI的视觉,是一个锥形感知体。 2.AI的听觉,主要与距离和声音大小有关,与遮挡物也有关。首先介绍一下AI的视觉方面吧,PawnSensingComponent的初始化很简单,在类内声明一个PawnSensingComponent字段,之后this->sensing

2015-11-21 19:56:26 4733

原创 UE4的Cast方法与类型转化

UE4中,我们经常会用到Cast函数,作用是强制转化一个指针到我们需要的类型,并且如果不能强制转化,就会返回nullptr。通过判断转换之后是不是nullptr,我们也能实现很多有用的功能(比如用于判断子弹击中的到底是什么) 那么Cast到底是如何实现的呢?要看Cast,首先要看到一个类型,叫做UClass,他是实现UE类型识别的重要类型。 我们经常打交道的类型都是继承自UObjectBase的

2015-11-17 00:48:41 23135 2

原创 学习一个WinAPI实现的线程基类

这个基类通过调用WinAPI的方法,编写了一个可以管理线程的基类,功能和用法都很基础,但是对理解线程的工作很有帮助。 h文件:#include <windows.h>static DWORD WINAPI threadFunction(LPVOID);class Thread { friend DWORD WINAPI threadFunction(LPVOID);public:

2015-11-16 00:49:44 1504

原创 UE4的Collision与Physics

Collision和Physics都是各种Mesh的属性,和Unity3D很像,Collision和Physics是两个独立的Component,Collision仅仅掌管碰撞发生的检测和回调,而Physics仅仅模拟碰撞发生之后位置速度等等的变化,可见Collision似乎用处更大一点。比如Collision可以设置各种perset,里边的标签都是不同的碰撞处理逻辑,但是本质上都是一些channe

2015-10-10 18:43:36 14045 1

原创 UE4的射线拾取

Ray-Trace作用于射线拾取。射线拾取主要相关 1.拾取函数是UWorld的多个方法。比如LineTraceSingle是单一拾取,拾取到一个之后就不继续穿透了,而LineTraceMulti会拾取多个目标。 2.射线拾取的主要参数有拾取开始点,结束点,拾取结果(一个FHitResult类型的引用,相当于返回值)拾取的碰撞通道和一个FCollisionQueryParams类型的参数。这个F

2015-10-10 00:23:16 14423

原创 UE4的MaterialInstance作用

我们经常会在游戏中看到Materials,但是还有一种数据结构名字叫做MaterialInstance。其实不少游戏的Mesh指认的都是MaterialInstance而不是Materials,为什么呢?1.Materials和MaterialInstance都可以指认给Mesh 2.Materials是在游戏运行之前编译好了的,而想要修改Materials的内部参数(比如动态修改其基本色,法线贴

2015-10-10 00:21:19 5712 1

原创 UE4的AI c++代码初始化

AI的行动主要逻辑位于BehaviorTree内,AI的主要行动实现主要位于AIController中,而AI的记忆主要位于Blackboard内。下面是一些基本概念:1.BehaviorTree内部含有一个成员是Blackboard。所以我们一般只给一个AICharacter内部设置一个成员BehaviorTree就行了,而在Editor内把Blackboard指认给BehaviorTree。2.

2015-10-10 00:19:58 3274

原创 UE4的delegate

首先,UE4中的delegate和C#里边是一样的,delegate的本质是一个特殊类的对象,它可以储存(一个或多个)函数指针和payload数据(就是除了函数指针,还能存些你调用时候的额外参数)UE4中的delegate类名字中都有signature,这里我们以overlap的回调委托为例:在各种mesh components中,都有这么一个字段FComponentBeginOver

2015-09-05 13:03:56 10078

原创 cocos编译安卓apk一晚上经验

一.配置环境需要的环境和开发包:cocos framework(cocos的库文件,必要不解释)android sdk(用于安卓开法,这个一定要有,目前使用安卓api22,考录到22兼容性问题,最好下个老版本的api用于编译)android ndk(十分重要,版本要到r10,之前用r7就会出错,ndk是用于c++代码编译为安卓代码的,而r7不识别c++11的代码,游戏源代码中是

2015-05-25 19:25:52 3393

scrapy教程

scrapy教程

2016-06-13

利用python进行数据分析

2016-06-06

python3.51文档

python3.51文档

2016-06-06

空空如也

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

TA关注的人

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