Home
Home
取消

RNN与LSTM

RNN 一个简单的RNN模型如下: 循环神经网络的隐藏层的值 SSS 不仅仅取决于当前这次的输入 XXX,还取决于上一次隐藏层的值 St−1S_{t-1}St−1​。权重矩阵 W WW 就是隐藏层上一次的值作为这一次的输入的权重。 RNN 按照时间线展开: 网络在 ttt 时刻接收到输入 X_{t} 之后,隐藏层的值是 StS_tSt​ ,输出值是 OtO_tOt​ 。关键一点是, OtO_tOt​ 的值不仅仅取决于 XtX_{t}Xt​ ,还取决于 St−1S_{t-1}St−1​ 。 LSTM LSTM 的梯度由两部分组成:RNN 结构的梯度和线性变换函数的梯度。线

tensorflow-gpu 安装笔记

公司另一个项目组整了台 GPU 服务器,可以蹭一蹭,tensorflow-gpu 环境的搭建还是有点麻烦,使用 conda 会省时省力一些。 安装 cuda 和 cudnn 手动安装 官方下载地址 conada 安装 换源请参考 conda 换源 初次使用 conda 需要初始化 shell: conda init powershell # win10 初始化 powershell, linux 则 bash/zsh 等 Copy ps. powershell 需要开启执行脚本的权限, 打开PowerShell 然后输入 get-executionpoli

理解 typedef 定义的函数指针

在 C 里面,可以用 typedef 来为一个已有的数据类型增加一个新的别名。比如: typedef int Length; Copy 这种简单的形式,大家都能理解。可是遇到下面这种形式,不少人就傻眼了。比如: typedef int (*PFI)(int, const char *); Copy 难道是把 int 数据类型定义成了 (*PFI)(int, const char *) 的数据类型,可是哪有这样的数据类型啊。即使被别人告知这是定义了一种函数指针类型,但却怎么也无法和 typedef int Length 这种形式关联起来,不是应该有一种已有的数据类型,一种新的数据类型

应对PPPOE拨号用户24/48小时断线一次

家里有一台做路由的虚拟服务器,拉的是联通的100M光纤,有时候玩游戏的时候突然掉线,经过查看路由(MikroTik RouterOS 6.38.5)日志发现每天差不多15:25分左右都有如下日志: 15:26:16 pppoe,ppp,info pppoe-out1: terminating...15:26:16 pppoe,ppp,info pppoe-out1: disconnected15:26:16 pppoe,ppp,info pppoe-out1: initializing...15:26:16 pppoe,ppp,info pppoe-out1: waiting fo

I2C 内部集成电路总线接口

简介 为两线串行接口,一条数据线 SDA,一条时钟线 SCL,可用于 MCU 和外部 I2C 设备的通讯。有标速(100kHz)、快速(400kHz)、快速+(1MHz)模式和Ultra Fast-mode(5MHz), 支持SMBus(系统管理总线)、 PMBus(电源管理总线)和SAM_V(验证安全控制模式),7 位和 10 位的地址模式和广播寻址。 信号定义 时钟信号的高电平期间 SDA 线上的数据必须稳定。只有在时钟信号 SCL 变低的时候数据线 SDA 的电平状态才能跳变 所有的数据传输起始于一个 START(S)结束于一个 STOP(P) START 起始位定

浅谈 Pandoc 将 Markdown 转成 PDF

使用 Pandoc 将 Markdown 转化成 PDF 常见的流程是利用 xelatex 直接生成 PDF。这要求安装 Latex 的大部分功能以及各种宏包,也不能像 Latex 那样自由的控制格式,生成的速度也很慢。更关键的是容易出现各种莫名奇妙的问题。 于是就想了个另外生成 PDF 的办法,即利用 Pandoc 先将 Markdown 转成 Html,再利用浏览器的打印功能打印出 PDF,虽然多了一个步骤,但会少很多问题,不用那么折腾,正所谓遥程路反近,捷径常误人。 利用 xelatex 直接生成 PDF 如果使用 Pandoc 直接生成 PDF,则需要安装 latex

不拆机直接修改黑群晖的SN和MAC

U盘引导修改方法 一、开启SSH端口。 在控制面板里面——>终端机和SNMP ,启动SSH功能打勾,并设置端口(建议别用22,改用其他的,比如220或者其他都行)。 二、挂载 synoboot1 分区。 第一步:用 ssh 工具如 xshell 连接到群晖的地址,用创建群晖的管理用户登陆。 第二步:获取root权限。(如果这一步失败,请按照教程开启root权限,6.17及以下版本看这里,6.2及以上版本看这里。) sudo -i 回车后会提示输入密码,即再次输入当前管理账号的密码。 成功后会变成 root@Sxxx:~#。 第三步:将 /dev/s

DNSmasq 配置

Dnsmasq 首先会查找 /etc/hosts 文件,如果没有查找到,会查询本地 DNS 缓存记录,如果还是未找到对应的记录,则会将请求装发到 /etc/resolv.conf 文件中定义的上游 DNS 服务器中,从而实现对域名的解析。 默认情况下,Dnsmasq 会从 /etc/dnsmasq.conf 读取配置项,我们也可以使用 -C 的启动参数来指定配置文件。下面介绍一下常用的 DNS 和 DHCP 服务的配置参数。 通用配置项 # 服务运行的网卡,如果有多个话,可在再次添加一条记录interface=eth1interface=wlan0# 指定服务不在以下网卡

IAR 分散加载

IAR 中的分散加载为 .icf 文件,在工程目录的 config 文件夹下。 /*###ICF### Section handled by ICF editor, don't touch! ****//*-Editor annotation file-*//* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" *//*-Specials-*/define symbol __ICFEDIT_intvec_start__ = 0x08000000;/*-Memory Regions-*/define

MDK(Keil) 分散加载

官网资料 分散加载文件是 sct 格式文件。 格式: 1. 每个加载域的加载地址和最大尺寸 2. 每个加载域的属性 3. 从每个加载域派生的执行域 4. 每个执行域的执行地址和最大尺寸 5. 每个执行域的输入节 特点: 1. 编译后输出的映像文件中各断是首位相连,中间没有空闲的区域。 2. scatter file 用于将编译后的映像文件中的特定段加载到多个分散的指定内存区域 3. 有两类域:执行域,加载域,从哪里取址,哪里就是执行域 4. 加载域:就是编译之后得到的二进制文件烧写到rom中的这一段区域,所有的代码r0,预定义变量rw,堆栈之类和清不清空无关紧要的