STL容器
1. Array 1.1 初始化 std::array无构造函数,只含有非静态公共成员变量,所以属于聚合类型,其他聚合类型还有数组类型。 对聚合体使用列表初始化被称为聚合初始化,它也是列表初始化的一种形式,聚合体初始化需要层层嵌套。 std::array的定义大概如下: template<typename T, std::size_t N> class array { public: T _data[N]; }; 它的聚合初始化如下: /** * 第一层是为了初始化std::array本身 * 第二层是为了初始化里面的数组 */ std::array<int, 3> arr{{1,2,3}}; 由于 C++ 聚合初始化时允许省略所有的内部花括号,所以可以简写做: std::array<int, 3> arr{1,2,3}; 对于二维数组。标准形式的初始化如下: /** * 最外两层是为了初始化外层array * 内部两层是为了初始化内层array */ std::array<...
Tmux
1. 安装 git clone git@github.com:tmux/tmux.git cd tmux sh autogen.sh ./configure && make 2. 配置 再配合zsh使用时会出现提示代码为白色的现象,需要修改~/目录下的.tmux.conf set -g default-terminal "tmux-256color" 为了让tmux支持鼠标操作,需要继续加入内容 set-option -g mouse on 3. 使用 tmux的使用可参考博客
为Hexo增加随机图API支持
将根目录下创建scripts/filters/random_cover.js文件,内容为 hexo.extend.generator.register('post', locals => { const previousIndexes = [] const getRandomCover = defaultCover => { if (!defaultCover) return false if (!Array.isArray(defaultCover)) return defaultCover const coverCount = defaultCover.length if (coverCount === 1) { return defaultCover[0] } const maxPreviousIndexes = coverCount === 2 ? 1 : (coverCount === 3 ? 2 : 3) let index do ...
将Hexo部署到远程服务器
1. 服务器部署 1.1 Git用户设置 首先在远程服务器中创建Git用户 adduser git 增加sudo权限 sudo vim /etc/sudoers 在文件中找到如下命令 ## Allow root to run any commands anywhere root ALL=(ALL) ALL 添加以下内容 git ALL=(ALL) ALL 然后按Esc键,然后按w!回车和q!回车,强制写入 在git用户下创建.ssh并将公钥复制到authorized_keys文件中 1.2 创建仓库目录 在var目录下创建repo作为Git仓库目录 sudo mkdir /var/repo 赋予权限 sudo chown -R git:git /var/repo sudo chmod -R 755 /var/repo 接下来创建Hexo目录作为网站根目录,并赋予权限 sudo mkdir /var/hexo sudo chown -R git:git /var/hexo sudo chmod -R 755 /var/hexo 接下来创建一个空白的Gi...
创建随机图片API
1. 创建站点 在宝塔面板的网站中添加站点作为API地址,将网站开启PHP,并申请一个SSL认证并打开强制https 2. 创建图片链接 打开这个站点的目录,创建一个img.txt和一个index.php 在PicList的管理中中全部选中并复制图片url,将链接粘贴到img.txt中 在index.php写入如下内容 <?php //存有image链接的文件名img.txt $filename = "img.txt"; if(!file_exists($filename)){ die('文件不存在'); } //从文本获取链接 $pics = []; $fs = fopen($filename, "r"); while(!feof($fs)){ $line=trim(fgets($fs)); if($line!=''){ array_push($pics, $line); } } //从数组随机获取链接 $pic = $pics[array_rand($pi...
服务器搭建图床
工具链如下 阿里云轻量服务器 宝塔面板 Docker MinIO PicList IMCompressor 1. 搭建Docker 使用宝塔快速搭建Docker,若没有安装宝塔则先安装一下宝塔 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh 12f2c1d72 之后,安装好宝塔后,进入宝塔面板内,安装Docker 2. 安装MinIO 在线上镜像中搜索MinIO镜像,然后构建对应容器,并开启9001-->9001/tcp和 9000-->9000/tcp两个端口映射, MINIO_BROWSER_REDIRECT_URL对应的端口为控制台接口,MINIO_SERVER_URL对应端口是API使用。 在阿里云服务器防火墙中开放9000和9001端口 现在,可以通过域名/IP:控制台端口 的方式访问MinIO的控制台了 3. 配置MinIO 在MinIO的控制台输入创建时候的账号密码。就可以登录进去 登陆进去以...
第四章策略梯度
1. 策略梯度算法 强化学习有3个组成部分:演员(actor)、环境和奖励函数。环境与奖励函数不是我们可以控制的,它们是在开始学习之前给定的。我们唯一需要做的就是调整演员里面的策略,使得演员可以得到最大的奖励 策略一般记作π\piπ。假设我们使用深度学习来做强化学习,策略就是一个网络。网络里面有一些参数,我们用θ\thetaθ来代表π\piπ的参数。网络的输入是智能体看到的东西,输出是我们可以执行的动作,有几个动作,输出层就有几个神经元 我们把初始状态记作s1s_1s1,把第一次执行的动作记作a1a_1a1,把第一次执行动作以后得到的奖励记作r1r_1r1。不同的人有不同的记法,有人觉得在s1s_1s1执行a1a_1a1得到的奖励应该记为r2r_2r2,这两种记法都可以 一场游戏称为一个回合。将这场游戏里面得到的所有奖励都加起来,就是总奖励(total reward),也就是回报,我们用RRR来表示它 在一场游戏里面,我们把环境输出的sss与演员输出的动作aaa全部组合起来,就是一个轨迹,即 τ={s1,a1,s2,a2,⋯ ,st,at}\tau = \{ s_1,...
终端美化
1. zsh 1.1 安装zsh sudo apt-get update sudo apt-get install zsh #设为默认 chsh -s $(which zsh) 不要关闭终端 1.2 安装oh-my-zsh 1、curl/wget下载 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 2、手动下载 git clone git@github.com:ohmyzsh/ohmyzsh.git cd ohmyzsh/tools/ ./install.sh 1.3 修改主题 vim ~/.zshrc 找到ZSH_THEME=“”,这句话,在双引号里面写上 crunch就可以啦 1.4 修改远程仓库地址 HTTPS访问GitHub经常受到网络限制或防火墙的影响,改用SSH是一个更稳定的选择 打开配置文件: vim ~/.oh-my-zsh/.git/config 将仓库 URL 从 HTTPS 改为 SSH 格式: [remot...