强化学习相关论文和开源项目

1.五子棋AI开源项目

https://github.com/junxiaosong/AlphaZero_Gomoku

https://github.com/initial-h/AlphaZero_Gomoku_MPI

https://github.com/jimth001/my-Gobang-game-base-AI-algorithm

alphazero 五子棋开源代码分析https://blog.csdn.net/chiefzzs/article/details/84197124

2.应用在魔方的AI深度学习论文

http://www.falls.fun/wp-content/uploads/2019/10/AI-魔方-1805.07470-1.pdf

3. 围棋

腾讯金毛围棋引擎 https://github.com/Tencent/PhoenixGo

飞扬围棋论坛的AI围棋版面http://www.flygo.net/bbs/forum.php?mod=forumdisplay&fid=113

欧洲leela-zero围棋引擎 主流开源围棋 https://github.com/leela-zero/leela-zero

leela棋谱分析工具, 大赞! https://github.com/lightvector/leela-analysis

最好用的围棋人机图形界面https://github.com/SabakiHQ/Sabaki

4.中国象棋

开源 https://github.com/chengstone/cchess-zero

中文论文https://zhuanlan.zhihu.com/p/34433581

Conda创建python虚拟环境

conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。 conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身 Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。

anaconda包管理:
conda list 列举当前环境下的所有包
conda list -n packagename 列举某个特定名称包
conda install packagename 为当前环境安装某包
conda install -n envname packagename 为某环境安装某包
conda search packagename 搜索某包
conda updata packagename 更新当前环境某包
conda update -n envname packagename 更新某特定环境某包
conda remove packagename 删除当前环境某包
conda remove -n envname packagename 删除某环境环境某包

conda本身和anaconda、python本身也算包
conda update conda
conda update anaconda
conda update python

1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。

2、conda常用的命令。

    1)conda list 查看安装了哪些包。

    2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境

    3)conda update conda 检查更新当前conda

3、创建python虚拟环境

     使用 conda create -n your_env_name python=X.X(2.7、3.6等) anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。

# 指定python版本为2.7,注意至少需要指定python版本或者要安装的包# 后一种情况下,自动安装最新python版本
conda create -n env_name python=2.7
# 同时安装必要的包
conda create -n env_name numpy matplotlib python=2.7

4、使用激活(或切换不同python版本)的虚拟环境。

    打开命令行输入python –version可以检查当前python的版本。

    使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。

    Linux:  source activate your_env_name(虚拟环境名称)

    Windows: activate your_env_name(虚拟环境名称)

   这是再使用python –version可以检查当前python版本是否为想要的。

5、对虚拟环境中安装额外的包。

    使用命令conda install -n your_env_name [package]即可安装package到your_env_name中。。 环境中使用 conda update –all 可以更新所有包。

6、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)

   使用如下命令即可 deactivate env_name,也可以使用activate root切回root环, Linux下使用 source deactivate。

7、删除虚拟环境。移除环境 使用命令conda remove -n your_env_name(虚拟环境名称)  --all, 即可删除。
  • 删除环境中的某个包。使用命令conda remove –name $your_env_name  $package_name 即可。

8、设置国内镜像

如果需要安装很多packages,你会发现conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,我们将其加入conda的配置即可。

添加Anaconda的TUNA镜像 conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/# TUNA的help中镜像地址加有引号,需要去掉。

设置搜索时显示通道地址conda config –setshow_channel_urls yes

GPGPU的体系结构

自2006年NVIDIA公司和AMD公司两个主要GPU生产商推出统一渲染GPU架构至今,统一渲染GPU架构的体系结构不断得到改进和革新,以致短短几年时间内GPU的性能飞速提升。

    NVIDIA公司推出的三代GPGPU体系结构分别为G80、GT200和Fermi。GT200在G80的基础上提高了硬件计算资源和计算功能,并在存储层次和硬件比例配置方面做出了优化和改进。Femi则对G80体系结构进行了许多革新,引入了新的体系结构特征。

G80系列是NVIDIA公司最早推出的统一架构GPU,G80体系结构从总体上来说可以分成两个组成部分,分别是流处理器阵列(stream processor array,SPA)和存储系统。这两个部分是由一个片上交叉互联网络连接,因此,该体系结构具有良好的扩展性。

    统一结构中的基本计算单元被称为流多处理器(streaming multiprocessors,SsM)SM是GPU最底层的独立硬件结构,可以把它看成一个SIMD处理単元。共有16个SM,每个SM又包括8个流处理器(streaming processor,SP)和两个特殊功能单元(special function unit,SFU)。此外,每个SM中还包含一个16KB大小的共享存储器(shared memory),用来实现同一线程块中的线程共享数据和通信。共享存储器采用的是显式访存模式,在没有冲突的情况下,访存速度接近于寄存器的访问速度。SM上还包括8192个32位寄存器,在执行时分配给每个线程。在G80体系结构中,每两个SM组成了一个线程处理簇(thread processing cluster,,TPC),组成TPC的两个SM共用一级常量Cache、纹理Cache和一条纹理访存流水线,8个TPC共用二级常量Cache和二级纹理Cachet 

GT200架构是NVIDIA公司在2008年推出的第二代统一架构GPU。GT200架构是G80架构的延续和扩展。基于G1200架构的GTX280采用TSMC65nm工艺技术,芯片面积约为能达到90 GFLOPS。576mm2,在片上集成了多达14亿个品体管。单精度浮点性能达到1 TFLOPS,双精度浮点性能达到90GFLOPS。

Ubuntu解压缩zip,tar,tar.gz,tar.bz2

ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:

我们可以使用下列的命令压缩一个目录:
# zip -r archive_name.zip directory_to_compress

下面是如果解压一个zip文档:
# unzip archive_name.zip

TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
# tar -cvf archive_name.tar directory_to_compress

如何解包:
# tar -xvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -xvf archive_name.tar -C /tmp/extract_here/

TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:

# tar -zcvf archive_name.tar.gz directory_to_compress

解压缩:
# tar -zxvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/

TAR.BZ2

这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。

# tar -jcvf archive_name.tar.bz2 directory_to_compress

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/

General Wireless systhink

2019.9.25 AP

  • 分析盒子的万兆口的打通工作量,目前是挂在mcs芯片上;
  • 盒子上使用UHD的具体方案,如何移植,是采用逻辑开发还算ARM的C++;
  • 基于OAI代码框架,内部人员分工,分析代码学习开源项目的设计。
  • 梳理我们PHY的代码有哪些函数需要进行优化?下一步做OAI的PHY代码对比分析。

2019.9.10 遍历场景问题
  • 今天想到信道遍历问题,物理层在算法与实现上的对数应该是不充分的,数据样本太少.
  • 如何充分遍历信道场景?如果使用通用平台接入RF单元,可以海量存储和实时分析判断IQ data的处理对比.
  • 初定一个目标: 使用通用x86平台完成一个接收机的连续IQ数据采样分析,如实时频谱图.
2019.9.7 讨论启动关键点论证
  1. 协调一台5300服务器安装linux ubuntu系统,作为研究资料共享及开发调试USRP的环境。
  2. 分析开源srslte项目中UHD底层协议,输出解析文档
  3. 分析x86平台上适合的OS实时系统,及软件协议框架的设想。
  4. 分析射频前端选择,在USRP和MK500两者间考虑可行的方案
  5. 分析NB PHY的汇编代码移植工作量.