- 博客(77)
- 资源 (8)
- 收藏
- 关注
原创 「环境配置」使用Windows自带工具清理C盘空间
Windows电脑操作系统一般是安装在磁盘驱动器的C盘中,一旦运行,便会产生许多垃圾文件,C盘空间在一定程度上都会越来越小。伴随着电脑工作的时间越久,C盘常常会提示显示其内存已不足。本文记录笔者清理机器的步骤。
2024-01-21 22:52:53
502
原创 【Linux系统】目录结构和常见命令
cp /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录复制到 /opt目录下面。cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全。find /bin -name 'a*' //查找/bin目录下的所有以a开头的文件或者目录。cp -r /usr/tmp/tool /opt //递归剪复制目录中所有文件和文件夹。
2024-01-03 17:15:37
864
原创 【深度优先遍历】经典岛屿问题汇总
岛屿系列算法问题是经典的面试高频题,岛屿系列题目的核心考点就是用 DFS/BFS 算法遍历二维数组。如何在二维矩阵中使用 DFS 搜索呢? 我们可以把二维矩阵中的每个点看做一个节点,这个节点的上下左右四个位置就是相邻节点,那么整个矩阵就可以抽象成一幅网状的「图」结构,二维矩阵的搜索问题就变成了从某个点出发,向上下左右四个方向进行深度搜索的问题。
2022-05-10 23:22:06
2053
原创 C++程序设计之编译性语言和解释性语言的
本文简单介绍了编译性语言、解释性语言和半编译半解释语言,提到了各自的优缺点。需要说明的是,这些优缺点并不是不可以改变的,一门语言的优点或缺点并不完全取决于其先天的设计,也取决于后天的生态建设,例如C#也是半编译半解释语言,但是其跨平台能力和Java不可同日耳语。Python作为跨平台能力强的语言,不仅因为它是解释性语言,而且它的学习成本低,开源生态好,很多程序员贡献了十分丰富的代码库。
2022-04-29 15:54:57
1016
原创 C++程序设计之智能指针的理论与实现
C++的指针是C++中非常重要的概念,但是裸指针(普通指针)使用很不安全,本文讲述C++中的智能指针的理论及其简易实现。
2022-04-28 21:56:34
1732
原创 【优化调参】提升GPU和CPU的利用率
在深度学习项目中,调节batch_size和num_workers参数来充分发挥GPU和CPU的性能
2021-11-27 00:18:27
18100
1
原创 【二叉树】学习与刷题的目录总览
二叉树是每个程序员学习过程中不可绕开的知识,重要性不言而喻。本文总结作者博客与二叉树相关的学习与刷题链接,分类整理,便于查漏补缺。一、二叉树的遍历方式1、理论学习【二叉树】(一)递归遍历算法 讲述递归法实现前序遍历、中序遍历、后序遍历【二叉树】(二)基于栈的迭代遍历讲述用迭代法实现前序遍历、中序遍历、后序遍历和层序遍历2、实践刷题【LeetCode】二叉树的深度优先遍历先序遍历、中序遍历和后序遍历相关的3道LeetCode题目的Python与C++实现【Leet...
2021-07-18 18:26:35
156
1
原创 【LeetCode】确定一棵二叉树
前言本文展示LeetCode中与确定一棵二叉树相关的题目,读者可以用来借此默写以检验是否熟悉相关算法,其难度为中等。 LeetCode题目 相关题目类型 相关链接 105 从前序与中序遍历序列构造二叉树(中等难度) https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traver
2021-07-18 17:56:59
167
原创 【二叉树】(三)确定一棵二叉树
前言在二叉树算法题型中中最常见的一类题型是根据遍历结果来推断二叉树结构,一般分为这两类:给定先序遍历和中序遍历,确定二叉树;给定中序遍历和后序遍历,确定二叉树。可以发现,给定的遍历结果中一定有中序遍历,请注意以下三条规律是设计该算法的依据:(1)中序遍历结果负责判断左右子树,在中间节点左侧一定属于其对应左子树,在右侧一定属于其右子树;(2)前序遍历结果第一个一定是中间节点,其后依次是其左子树节点和右子树节点;(3)后序遍历结果最后一个一定是中间节点,其前依次是其右子树节点和
2021-07-18 17:53:35
867
1
原创 【二叉树】(二)基于栈的迭代遍历
前言二叉树的遍历算法是二叉树最基础的算法,没有之一。二叉树的遍历算法主要有4种:先序遍历,中序遍历,后续遍历和层次遍历,其中第1-3个属于深度优先遍历,第4个属于广度优先遍历。对二叉树的3种深度优先遍历算法的学习有三个层次:(一)精通遍历算法的递归实现;(二)精通遍历算法的借助栈结构的迭代实现;(三)精通遍历算法的不借助栈结构的递归实现。我们希望读者至少可以掌握前两个层次。本文讲解借助栈的深度优先遍历算法和借助队列的广度优先遍历算法,使用C++和Python3分别进行演示。
2021-07-17 16:00:42
446
1
原创 【LeetCode】二叉树的广度优先遍历
前言本文展示LeetCode中与二叉树广度优先遍历(层序遍历)的变体相关的题目,读者可以用来借此默写以检验是否熟悉相关算法,其难度为简单或中等,我们会给出最基础的层序遍历算法,然后推荐读者熟练掌握相关变体算法。 LeetCode题目 相关题目类型 相关链接 102 二叉树的层序遍历-按层输出(中等难度) https://leetcode-cn.com/problems/binary-tr
2021-07-17 15:54:28
571
原创 【LeetCode】二叉树的深度优先遍历
前言本文展示LeetCode中与二叉树深度优先遍历相关的三道题,读者可以用来借此默写以检验是否熟悉相关算法,其难度为简单,但是我们推荐读者使用进阶版等更难的实现方法。 LeetCode题目 相关题目类型 相关链接 144 二叉树的先序遍历 https://leetcode-cn.com/problems/binary-tree-preorder-traversal/ .
2021-07-13 23:16:46
365
2
原创 【二叉树】(一)递归遍历算法
前言二叉树的遍历算法是二叉树最基础的算法,没有之一。二叉树的遍历算法主要有4种:先序遍历,中序遍历,后续遍历和层次遍历,其中第1-3个属于深度优先遍历,第4个属于广度优先遍历。对二叉树的3种深度优先遍历算法的学习有三个层次:(一)精通遍历算法的递归实现;(二)精通遍历算法的基于栈结构的迭代实现;(三)精通遍历算法的统一风格的递归实现。我们希望读者至少可以掌握前两个层次。本文讲解递归实现的深度优先遍历算法,使用C++和Python3分别进行演示。一、二叉树节点的定义现在
2021-07-13 23:08:17
3013
1
原创 【FlappyBird小游戏】编写AI逻辑(三)——RL算法的训练主循环
本文隶属于一个完整小项目,建议读者按照顺序阅读。本文仅仅展示最关键的代码部分,并不会列举所有代码细节,相信具备RL基础的同学理解起来没有困难。全部的AI代码可以在【Python小游戏】用AI玩Python小游戏FlappyBird【源码】中找到开源地址。如果本文对您有帮助,欢迎点赞支持!文章目录一、训练主循环二、启动代码一、训练主循环训练主循环与Deep Rl算法紧密相关,本项目的主循环如下:def train(self,max_episodes): print
2021-05-06 16:12:51
670
1
原创 【FlappyBird小游戏】编写AI逻辑(五)——搭建计算图和学习机制
本文隶属于一个完整小项目,建议读者按照顺序阅读。本文仅仅展示最关键的代码部分,并不会列举所有代码细节,相信具备RL基础的同学理解起来没有困难。全部的AI代码可以在【Python小游戏】用AI玩Python小游戏FlappyBird【源码】中找到开源地址。如果本文对您有帮助,欢迎点赞支持!文章目录一、定义计算图1、定义评估网络的输入输出2、定义目标网络的输入输出3、定义两个网络的参数更新操作二、定义学习机制1、从经验重放池中进行批采样2、根据批采样数据使用单步Q-l
2021-05-06 16:12:15
825
2
原创 【FlappyBird小游戏】编写AI逻辑(四)——搭建CNN网络
本文隶属于一个完整小项目,建议读者按照顺序阅读。本文仅仅展示最关键的代码部分,并不会列举所有代码细节,相信具备RL基础的同学理解起来没有困难。全部的AI代码可以在【Python小游戏】用AI玩Python小游戏FlappyBird【源码】中找到开源地址。如果本文对您有帮助,欢迎点赞支持!文章目录前言一、封装基本操作1、卷积操作2、最大池化操作3、扁平化操作二、封装基本神经层1、卷积操作2、封装卷积神经层三、封装基本神经网络前言一、封装基本操..
2021-05-06 16:07:14
688
2
原创 【FlappyBird小游戏】编写AI逻辑(二)——基于队列的经验重放池
如果本文对您有帮助,欢迎点赞支持!文章目录前言第1种设计方式:基于Numpy数组第2种设计方式:基于Python数组第3种设计方式:基于队列前言书写经验重放池是Deep Rl算法的必备技术之一,常见的是基于数组的形式,本文列举3种常见的实现方式。本文不会详细介绍代码,因为太过简单,不理解的同学可以直接在评论区提问。第1种设计方式:基于Numpy数组class ReplayBuffer(object): def __init__(self, capacity,
2021-05-06 15:52:14
738
1
原创 【FlappyBird小游戏】编写AI逻辑(一)——RL系统和数据预处理
提示:如果本文对您有帮助,欢迎点赞支持!文章目录前言一、强化学习系统二、帧数据的预处理1、抓取帧图像2、预处理初始状态3、预处理下一状态前言我们的目标是训练小鸟尽可能地保持存活通过更多的管道障碍物从而最大化游戏得分。当很难完全罗列预定的行为进行编程时,就可采用强化学习方式。我们计划设计一个强化学习系统,其中Q函数通过一个卷积神经网络(深度Q网络)来模拟,其输入是原始像素,输出是一个评估未来奖励的价值函数,通过该价值函数来指导智能体采取动作。深度Q网络的训练是提取游戏运
2021-05-04 22:10:30
1365
1
原创 【Python小游戏】用AI玩Python小游戏FlappyBird【源码】
提示:如果本文对您有帮助,欢迎点赞支持!文章目录目录前言一、Flappy Bird是什么?二、本项目简介1.实现效果2.游戏逻辑的相关链接(1)游戏逻辑部分(2)AI训练逻辑部分说明前言本项目是作者实现用AI玩Python小游戏中的游戏逻辑部分,暂不会牵扯到相关的AI逻辑,当然为了便于AI训练,该游戏进行了一定的简化处理,没有添加开始游戏等其他界面。一、Flappy Bird是什么?Flappy Bird是一款玩家要在游戏中尽可能长地维持小鸟生命的
2021-05-02 22:29:15
8403
25
原创 【FlappyBird小游戏】编写游戏逻辑(四)——控制Bird和碰撞检测【源码】
提示:如果本文对您有帮助,欢迎点赞支持!文章目录1、玩家控制Bird(1)更改游戏主循环(2)更改游戏帧渲染2、Bird的碰撞检测(1)更改游戏帧渲染(2)碰撞检测函数(3)像素级碰撞检查(4)最终效果1、玩家控制Bird在该游戏中玩家只需要按空格或者up键来控制输入,玩家每按一次,小鸟就向上飞行一小段距离,这也是该游戏的特点(1)更改游戏主循环我们在游戏主循环中添加接收玩家输入事件的判断程序,如下: def run_game(self):
2021-05-02 22:09:31
1277
原创 【FlappyBird小游戏】编写游戏逻辑(三)——添加Bird和Pipe【源码】
提示:如果本文对您有帮助,欢迎点赞支持!文章目录前言1、添加Pipe对象(1)初始化(2)重置(3)帧渲染(4)实现效果2、添加Bird对象(1)初始化(2)重置(3)帧渲染(4)实现效果前言在之前的代码中,我们已经实现了一个用Pygame搭建FlappyBird的基本框架,其最终生成效果如下:现在我们添加继续添加Bird和Pipe对象,让该游戏看起来更加完整。1、添加Pipe对象(1)初始化在Flappy_Bird_Env的ini
2021-05-02 22:00:54
1194
8
原创 【FlappyBird小游戏】编写游戏逻辑(二)——读取游戏资源【源码】
提示:如果本文对您有帮助,欢迎点赞支持!文章目录1、读取图片资源2、读取音效资源3、读取游戏资源4、修改游戏主循环(1)游戏初始化(2)游戏帧渲染在上一篇中,我们已经可以读取图片资源,但是在该游戏中的图片资源非常多,另外还有音效资源,所以这里我们抽取相应方法来统一读取上述游戏资源。1、读取图片资源我们要读取的资源是具有透明度的.png文件:我们将读取的图片文件资源放在一个字典中,如下图:SPRITES_PATH = 'assets/sprites/' #
2021-05-02 21:56:15
1293
3
原创 【FlappyBird小游戏】编写游戏逻辑(一)——基本游戏主循环【源码】
提示:如果本文对您有帮助,欢迎点赞支持!文章目录前言1、创建游戏窗口2、添加循环频率和退出事件2、创建渲染图片3、让地面图片实现移动效果前言在Python程序中编写桌面小游戏大都使用的是第三方库pygame。导入该库的相关设置:import sysimport pygame1、创建游戏窗口创建一个指定大小的游戏窗口FPS = 30 # 刷新频率SCREENWIDTH = 288 # 屏幕宽度SCREENHEIGHT = 512 # 屏幕高度
2021-05-02 21:51:41
2487
6
原创 从零构建参数化全连接神经网络研究(三)之函数拟合实验【开源】
注意:这是一个完整的项目,建议您按照完整的博客顺序阅读。因为该项目原本是作者的一个课程作业,其详细内容直接截取了作者汇报PPT,若给您带来不便,欢迎留言。从零构建参数化全连接神经网络研究(三)之函数拟合实验目录一、实验的MNIST数据集二、过拟合问题的实验研究1、梯度下降算法 & 最小批次梯度下降算法2、探究过拟合现象3、过拟合解决办法(一)之增加数据集4、过拟合解决办法(二)——正则化方法三、提高训练效率的实验研究1、提升训练速度办法(一)——优化权重初
2021-04-27 13:51:15
307
1
原创 从零构建参数化全连接神经网络研究(二)之数字分类实验【开源】
注意:这是一个完整的项目,建议您按照完整的博客顺序阅读。因为该项目原本是作者的一个课程作业,其详细内容直接截取了作者汇报PPT,若给您带来不便,欢迎留言。从零构建参数化全连接神经网络研究(二)之数字分类实验目录一、实验的MNIST数据集二、过拟合问题的实验研究1、梯度下降算法 & 最小批次梯度下降算法2、探究过拟合现象3、过拟合解决办法(一)之增加数据集4、过拟合解决办法(二)——正则化方法三、提高训练效率的实验研究1、提升训练速度办法(一)——优化权重初
2021-04-26 17:52:05
304
原创 从零构建参数化全连接神经网络研究(一)之前言【开源】
从零构建参数化全连接神经网络研究目录前言一、项目内容结构1、目录结构2、8个迭代的神经网络版本二、项目代码简析1、神经网络类的派生2、代码的注释与说明3、最终版本的神经网络三、项目开源信息前言本项目原是作者的《图像合成技术》的一个课程作业,现已结课,开源出来供同行批评指正。主要内容是从零构建一个基础的参数化的全连接神经网络(不使用人工智能算法库),并使用该网络进行了一个分类实验和一个回归实验。本项目进行了8个版本的神经网络的迭代,每个版本层层推进,适合
2021-04-26 17:41:36
505
原创 使用多种AI算法玩方格迷宫——基于Value的RL算法 【开源】
使用多种AI算法玩方格迷宫——基于Value的RL算法目录使用多种AI算法玩方格迷宫——基于Value的RL算法前言(1)自定义数据可视化训练变化效果(2)训练模型的TensorBoard效果(3)训练过程的打印日志(4)本项目开源地址等附加信息前言本项目是作者(MRL Liu)使用AI算法的强化学习方法玩方格迷宫游戏的一个阶段性总结,本项目的迷宫游戏是简单的方格迷宫,其状态空间和动作空间都足够简单,是作者整理的手中的第1个RL项目。该项目重构了作者之前学习时
2021-04-26 17:16:12
522
原创 基于TensorFlow的FNN模型——MNIST手写数字识别器(四)之训练和测试【开源】
注意:这是一个完整的项目,建议您按照完整的博客顺序阅读。文章目录前言一、训练神经网络的方法1、训练主流程2、定期保存网络模型3、在TensorBoard中可视化4、在TensorBoard中记录各个节点的训练信息(可选)二、评估与测试模型1、加载模型(1)重定义计算图结构(2)滑动平均值重命名变量(3)读取保存的网络模型2、随机抽取图片检测预测效果提示前言之前的几篇博客我们已经定义好了如何进行定义计算图模型,接下来我们就要进行计算图模型的训练和
2021-04-20 16:08:23
543
原创 基于TensorFlow的FNN模型——MNIST手写数字识别器(三)之定义FNN【开源】
注意:这是一个完整的项目,建议您按照完整的博客顺序阅读。文章目录前言一、定义全连接神经层1、tf.Variable()或者tf.get_variable()的区别2、定义网络的权重(1)使用tf.Variable(initial_value,name)(2)使用tf.get_Variable(name,shape,initializer,collections)(3)随机数生成的常用函数3、定义网络的偏置(1)使用tf.Variable(initial_value,n
2021-04-20 13:53:51
722
原创 基于TensorFlow的FNN模型——MNIST手写数字识别器(二)之数据集可视化【开源】
注意:这是一个完整的项目,建议您按照完整的博客顺序阅读。文章目录前言二、使用MNIST数据集1、读取MNIST数据集2、MNIST数据集的常见操作三、可视化MNIST图片1、随机抽取9张图片数据2、可视化图片数据3、可视化效果提示前言MNIST手写数字识别是深度学习过程中的经典项目,很可能是很多深度学习爱好者的第一个入门项目。一、MNIST数据集的介绍该项目使用的是MNIST数据集,该数据集共有7万张图片,其中6万张用于训练神经网络,1万张用于测
2021-04-19 22:40:21
984
原创 基于TensorFlow的FNN模型——MNIST手写数字识别器(一)之前言【开源】
MNIST手写数字识别器——基于TensorFlow的FNN模型目录前言(1)读取的MNIST图片数据可视化效果(2)训练模型的TensorBoard效果(3)测试模型的可视化效果(4)本项目开源地址等附加信息前言本项目是作者(MRL Liu)基于TensorFlow框架训练的一个全连接网络的手写数字识别器,是作者一个阶段总结性项目。基于MNIST的手写数字识别项目已是深度学习入门的必备项目,但区别于其他,本项目的特色是添加了:模型的保存与加载功能、TensorF
2021-04-19 21:59:36
986
4
原创 【API使用总结】np.argmax()和tf.argmax()的辨析
提示:如果本文对您有帮助,请点赞支持!文章目录前言一、np.argmax()的使用二、tf.argmax()的使用前言在写AI算法的Demo时,偶然间出现了一个bug,发现是我不小心将tf.argmax()写成了np.argmax(),正好闲来无事,辨析下两个API的使用一、np.argmax()的使用np.argmax()是Python的第三方库numpy中的一个常见API,经常用来获取数组中的最大值所在的索引。所以使用该API要先导入该库:impo..
2021-04-19 20:29:52
636
2
原创 TensorBoard训练可视化(一)
如果本文对您有帮助,欢迎点赞支持!目录前言1、TensorBoard可以做什么?2、TensorBoard的绘制流程一、可视化计算图结构1、为计算图结构添加name和name_scope2、生成graph Events文件3、启动TensorBoard4、TensorBoard的显示效果二、监控训练过程数据1、监控张量节点变化2、监控模型变量变化3、定期添加到TensorBoard前言1、TensorBoard可以做什么?TensorBoard
2021-04-16 16:05:50
793
原创 TensorFlow模型的保存与加载(二)——pb模式【源码】
如果本文对您有帮助,欢迎点赞支持!目录前言1、TF模型保存方法2、pb模式3、适合保存模型的时机一、保存模型1、定义简单网络模型2、保存网络模型为pb文件二、加载网络模型前言1、TF模型保存方法网络模型的保存和重载操作是学习和训练AI模型的必备技能之一,也是进一步学习迁移学习知识的基础。Tensorflow的模型保存加载有不同格式,使用方法也不一样。目前来看,Tensorflow的保存方式按照生成的主要文件的格式基本可以分为三种:(1)checkpoint模式
2021-04-15 20:03:32
9835
2
原创 TensorFlow模型的保存与加载(一)——checkpoint模式【源码】
如果这篇文章对您有帮助,欢迎点赞支持!目录前言1、TF模型保存方法2、checkpoint模式3、适合保存模型的时机一、保存模型1、创建Saver对象2、检查保存路径3、生成模型文件二、加载模型1、加载模型结构2、加载模型参数3、获取Tensor变量三、代码封装1、保存网络模型2、加载网络模型前言1、TF模型保存方法网络模型的保存和重载操作是学习和训练AI模型的必备技能之一,也是进一步学习迁移学习知识的基础。Tensorflow
2021-04-15 16:52:10
8661
3
原创 C#编程——在Unity脚本中与Python通信
提示:若本篇文章对您有帮助,欢迎点赞支持。文章目录前言一、方法(一)——通过命令行调用Python代码1、命令行运行Python程序的方法2、C#中运行Python程序3、该方法的不足之处二、方法(二)——通过套接字调用Python代码1、套接字通信方法简介2、引用套接字通信包前言Unity是一款十分优秀的游戏引擎,许多个人开发者都在尝试使用该软件自己喜爱的应用。如果在Unity中使用一些先进的人工智能算法则可能需要借助Python代码。Unity官方推出
2021-04-09 14:49:56
5577
1
原创 使用Python构建参数化FNN(一)——构建可自定义结构的FNN
提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。文章目录一、 神经元与神经层的输出计算二、 实现一个2*3*1的FNN三、 实现一个自定义结构的FNN一、 神经元与神经层的输出计算从单个神经元的角度看,我们输入一个x,它经过自身的权重、偏置和激励函数(以Sigmoid为例)返还一个输出值。从单个神经层(假设有3个神经元)的角度看,我们输入一个向量,它经过自身的权重矩阵、偏置向量和激励函数(以Sigmoid为例)返还一个输出向量。在上述描述中,我们使用
2021-04-08 22:25:25
2149
【Python小游戏】用Python编写小游戏FlappyBird
2021-05-02
MNetSocket-Python.zip
2021-04-01
山地自行车物理模型模拟器(双摄像机跟随).unitypackage
2020-09-30
基于MFC的人机对战版五子棋算法(包含禁手)
2019-04-14
Java练习项目:简易窗口计算器
2018-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人