源码

pytorch源码解析:Python层 pytorchmodule源码

徘徊边缘 提交于 2019-12-05 21:44:00
尝试使用了pytorch,相比其他深度学习框架,pytorch显得简洁易懂。花时间读了部分源码,主要结合简单例子带着问题阅读,不涉及源码中C拓展库的实现。 一个简单例子 实现单层softmax二分类,输入特征维度为4,输出为2,经过softmax函数得出输入的类别概率。代码示意:定义网络结构;使用SGD优化;迭代一次,随机初始化三个样例,每个样例四维特征,target分别为1,0,1;前向传播,使用交叉熵计算loss;反向传播,最后由优化算法更新权重,完成一次迭代。 import torch import torch.nn as nn import torch.nn.functional as F class Net (nn.Module): def __init__ (self): super(Net, self).__init__() self.linear = nn.Linear( 4, 2) def forward (self, input): out = F.softmax(self.linear(input)) return out net = Net() sgd = torch.optim.SGD(net.parameters(), lr= 0.001) for epoch in range( 1): features = torch.autograd

dedecms源码分析(2014/4/3)

人盡茶涼 提交于 2019-12-05 21:32:10
(一) dedecms没有什么框架而已,都是有php代码文件组成的逻辑。访问不同的php文件,管理不同的系统功能。 include目录放系统的一些公用函数和类,plus目录放插件,templates目录放模板,dede目录放后台目录(但项目借用dede的话,就要改动这个目录。为了安全)。 include目录里面有calendar 一个选时间的js,captcha 一个验证码,开源组件。 code 翻页的文字。data 系统用到的资源,如声音,词库,图片,字体等。dialog 里面是一些AJAX弹出窗口的内容部分。inc 一些单独的功能函数类。至于为甚么要单独放。 ? 不知道,日后解答。payment支付接口。taglib dede的模板引擎标签的存放目录。tplib ? 对dede的代码分析,要重点关注页面生成,显示,模板处理,标签处理。 (二) 来源: oschina 链接: https://my.oschina.net/u/1456671/blog/215902

Caffe源码-SyncedMemory类

泪湿孤枕 提交于 2019-12-05 20:47:44
SyncedMemory类简介 最近在阅读caffe源码,代码来自 BVLC/caffe ,基本是参照网络上比较推荐的 Blob-->Layer-->Net-->Solver 的顺序来分析。其中SyncedMemory类是caffe中底层的结构,负责操作(申请、拷贝等)内存或显存中的数据。 syncedmem.cpp源码 SyncedMemory::SyncedMemory() //构造函数,初始化内部的变量,size为0,指针为空等 : cpu_ptr_(NULL), gpu_ptr_(NULL), size_(0), head_(UNINITIALIZED), own_cpu_data_(false), cpu_malloc_use_cuda_(false), own_gpu_data_(false) { #ifndef CPU_ONLY #ifdef DEBUG CUDA_CHECK(cudaGetDevice(&device_)); //cudaGetDevice()函数会返回当前被使用的设备 #endif #endif } SyncedMemory::SyncedMemory(size_t size) //构造函数,设置size_的值(不会分配内存) : cpu_ptr_(NULL), gpu_ptr_(NULL), size_(size), head_

Dubbo源码分析-Remoting层

余生长醉 提交于 2019-12-05 20:44:47
Dubbo Github地址 https://github.com/alibaba/dubbo.git Dubbo Remoting 模块是dubbo底层通信模块的实现。实现对请求/应答的各种逻辑处理,包括同步,异步,心跳等逻辑,最底层的通信借助netty或者mina实现,还有通过jetty servlet暴漏http服务的实现方式。 Remoting Api 公共基础接口类 Endpoint Endpoint 字面意思是端点,端点接口的基本操作有获取端点对应的URL,LocalAddress,及发送关闭Channel的操作; Channel Channel接口继承Endpoint ,多了对Attribute的操作接口(get,set,remove)及获取连接状态接口,多了获取远端的操作getRemoteAddress方法; ChannelHandler ChannelHandler 主要包含对Channel的一些处理: connected(Channel channel); disconnected(Channel channel); sent(Channel channel, Object message); received(Channel channel, Object message); Client Client继承了Endpoint, Channel,

React源码 ReactContext

别说谁变了你拦得住时间么 提交于 2019-12-05 20:23:41
我们知道在react当中,组件与组件的沟通是通过props,父组件通过props给子组件传递一些属性,父组件可以传递一些回调函数给子组件,让子组件在某些特定的时候,可以调用父组件的一些特性。 但是我们会存在一个问题就是,react 的应用当中,组件和组件之间并不一定只有父子关系。他们还会存在着父子嵌套多层之后,第一层和最后一层之间是一个祖孙的关系。他们之间会隔着好几层不同的组件。那如果他们之间要进行一些沟通,我们通过 props 传递是不太现实的。因为中间的那几层组件不一定是我们自己写的。而且中间这个组件要去传递这个 props ,对她来说是完全没有意义的事情,所以这个时候 react 就给我们提供了 context 的使用方式 上级组件当中我们提供了一个 context 对象之后,他的子元素里面都可以通过 context 去获取到他提供的这部分内容,以此达到一个跨越多层组件传递信息的一个功能。 context有两种实现方式 1、childContextType (即将在 react 17 版本的时候废弃) 2、createContext (react 16 之后提供的) 代码 import React from 'react' import PropTypes from 'prop-types' const { Provider, Consumer } = React

ListenAndServe源码剖析

余生颓废 提交于 2019-12-05 20:09:21
使用goland追踪阅读ListenAndServe源码,剖析服务器启动流程 ListenAndServe阅读 func ListenAndServe(addr string, handler Handler) error { //1. 创建server server := &Server{Addr: addr, Handler: handler} //2. 启动server return server.ListenAndServe() } 注意:创建一个server,启动server,我们也可以按照这2个步骤去创建一个web服务 Server结构阅读 // 基类Closer接口,关闭所有链接停止服务 type Closer interface { Close() error } // 检查服务是否存活,里面定义了接口,接口的另类定义使用 // 奇怪的行为,不确定为什么这么做 func http2h1ServerKeepAlivesDisabled(hs *Server) bool { var x interface{} = hs // 临时定义接口,使用【奇怪的使用方法】 type I interface { doKeepAlives() bool } if hs, ok := x.(I); ok { return !hs.doKeepAlives() } return

区块狗开发 源码搭建

风格不统一 提交于 2019-12-05 19:56:07
区块狗开发找周经理:182微1918电1929;一. APP何为原生开发?何为混合开发? 1. 原生开发(Native App开发):像盖房子一样,先打地基然后浇地梁、房屋结构、一砖一瓦、钢筋水泥、电路走向等,原生APP同理:通过代码从每个页面、每个功能、每个效果、每个逻辑、每个步骤全部用代码写出来,一层层,一段段全用代码写出来。 此种APP的数据都保存在本地,APP能及时调取,所以相应速度及流畅性有保障。 2.混合开发(HTML5开发):这个就相当于一种框架开发,说白了就是网页;该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。 混合APP还有一种是套壳APP,套壳APP就是用H5的网页打包成APP,虽然是APP能安装到手机上,但是每个界面,全部是网页。 此种APP数据都保存在云端,用户每次访问都需要从云端调取全部内容,这样就容易导致反应慢,每打开一个网页或点一个按钮都需要等半天。 区块狗系统玩法介绍:   1、完善资料   首先通过商机邀请码进入平台,填写相应的个人资料以及最重要的一个收款码,用来线下交易所用。   2、福分   玩家通过一个充值,即可获得相应的福分;还有另一个就是通过用户间的一个转赠也可以获得福分。   3、预约/领养  

nginx 源码调试

北慕城南 提交于 2019-12-05 19:55:45
这段时间正在学习nginx源码,看到一贴子的提问 (帖子:http://www.oschina.net/question/2711991_2165566?p=1#AnchorAnswer1114315),决定试试能不能搞定。 这个帖子的主要问题是,自己写的第三方模块,不能使用gzip压缩,nginx自带模块使用正常。 对nginx 熟悉的大牛,估计一眼就能看出问题所在,对于我这种小菜,比对了helloworld模块跟status模块,也没看出问题所在,只能用绝招跟踪两个模块的源码。 nginx是多个work进程,为了方便调试,把修改nginx.conf配置文件,只启用1个work进程。 现在是status模块可以gzip, helloword模块不能gzip, 说明gzip模块的配置是正确,初步怀疑是helloword模块中的某些参数配置不正确,导致没有调用到gzip。 查看ngx_http_gzip_filter_module.c代码,ngx_http_gzip_header_filter()函数为此模块的handle函数。 ps -ef|grep nginx 查看nginx进程号, 32259 为nginx工作进程号。 gdb attach 32259 启动gdb 附加到此进程 b ngx_http_gzip_header_filter 打断点,到此函数,

标准库path源码解读

◇◆丶佛笑我妖孽 提交于 2019-12-05 19:53:51
先看标准库 作用:关于路径的一些实用操作 https://github.com/golang/go/blob/master/src/path/path.go 源码地址 func IsAbs func IsAbs(path string) bool IsAbs返回路径是否是一个绝对路径。 源码如下: func IsAbs(path string) bool { return len(path) > 0 && path[0] == '/' } 非常简单,return 了个bool , 判断条件是path大于零并且绝对路径是以‘/’开头。 func Split func Split(path string) (dir, file string) Split函数将路径从最后一个斜杠后面位置分隔为两个部分(dir和file)并返回。如果路径中没有斜杠,函数返回值dir会设为空字符串,file会设为path。两个返回值满足path == dir+file。 源码如下: func Split(path string) (dir, file string) { i := strings.LastIndex(path, "/") return path[:i+1], path[i+1:] } 也很简单和官方给的函数介绍一样,LastIndex找到最后一个“/”匹配成功的位置,找不到i == -1 。