10分钟教你用python打造贪吃蛇超详细教程

Python之路—200行Python代码搞了个打飞机游戏!! 早就知道pygame模块,就是没怎么深入研究过,恰逢这周未没约到妹子,只能自己在家玩自己啦,一时兴起,花了几个小时写了个打飞机程序。 阅读详情

更多精彩尽在微信公众号【程序猿声】

微信公众号

10分钟教你用python打造贪吃蛇超详细教程

在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的。今天就在家研究一下, 弄了个贪吃蛇出来。希望没女朋友的大家喜欢~~~

先看程序效果:

image

image

01 整体框架

平台:pycharm

关于pygame的安装这里就不在赘述,大家自行上网找合适自己的版本的安装即可。关于pygame模块知识会穿插在下面代码中介绍,用到什么就介绍什么。这里就不统一介绍了。

整个程序由于是调用了大量的pygame里面的库函数,所以也非常简单(卧槽你这不是调包侠嘛)。也就200多行代码。基于整体怎么设计的呢?看下面的图:

image

由于程序没有多么复杂,就直接用面向过程的思路写了。毕竟这么小的程序没必要整一大堆class来为难自己对吧。

程序整体代码框架:
image

pycharm里面一堆波浪线也是很无奈。

02 main主函数-开始工作

此函数也非常简单。主要承担一些游戏窗口的初始化工作,以及调用相关函数运行游戏。代码如下:

#主函数
def main():
    pygame.init() # 模块初始化
    snake_speed_clock = pygame.time.Clock() # 创建Pygame时钟对象
    screen = pygame.display.set_mode((windows_width, windows_height)) #
    screen.fill(white)

    pygame.display.set_caption("Python 贪吃蛇小游戏") #设置标题
    show_start_info(screen)               #欢迎信息
    while True:
        running_game(screen, snake_speed_clock)
        show_gameover_info(screen)

基于以上代码,咱们来做几点讲解:

  • pygame.time.Clock()
    控制帧速率。pygame.time.Clock()会控制每个循环多长时间运行一次。这就好比,有个定时器在控制着时间进程,一到时间就告诉CPU:
    现在该开始循环了!
    现在该开始循环了!

    使用pygame时钟之前,必须先创建Clock对象的一个实例,这与创建其他类的实例完全相同。Clock= Pygame.time.Clock()。然后在主循环体中,只需要告诉时钟多久“提醒”一次———-也就是说,循环应该多长时间运行一次:clock.tick(60)。

    传入clock.tick()的数不是一个毫秒数。这是每秒内循环要运行的次数,所以这个循环应当每秒运行60次,在这里我只是说应当运行,因为循环只能按计算机能够保证的速度运行,每秒60个循环(或帧)时,每个循环需要1000/60=16.66ms(大约17ms)如果循环中的代码运行时间超过17ms,在clock指出下一次循环时当前循环将无法完成。

    再说通俗一点,就是我们游戏的fps嘛。每秒多少帧这样。至于后面在哪clock.tick(),下面会讲。
    详细可参考这篇文章:http://eyehere.net/2011/python-pygame-novice-professional-8/

  • pygame.display.set_mode((windows_width, windows_height))

    生成windows窗口,pygame.display.set_mode(resolution=(0,0),flags=0,depth=0)。返回的是一个surface对象(surface对象是用于表示图像的图像,只要指定尺寸,就可以利用),resolution可以控制生成windows窗口的大小,flags代表的是扩展选项,depath不推荐设置。

    flags标志位控制你想要什么样的显示屏,主要有下面几个,这几个量相当于是全局的常量,使用的时候可以from pygame.locals import *导入:

    • pygame.FULLSCREEN,控制全屏,0或者1来控制
    • pygame.HWSURFACE 控制是否进行硬件加速
    • pygame.RESIZABLE 控制窗口是否可以调节大小
  • screen.fill(white)
    pygame.surface.fill(color)。对surface对象填充某一种颜色,在这里表现为窗口背景颜色的填充。

以上讲完,然后就是运行我们游戏三个函数了。

  • show_start_info(screen)
    显示欢迎信息,最终效果表现为:

    image

    当然,怎么实现,待会说。

接着死循环。因为我们的游戏设置是,当GameOver以后,我们可以按任意键重新开始游戏,或者退出。因此最后不断循环判断用户是否想重新开始游戏,就这样而已。

  • 游戏主体running_game(screen, snake_speed_clock)
    贪吃蛇运行的主体函数。整个程序的精髓所在。

  • show_gameover_info(screen)
    贪吃蛇死了,显示GameOver,表现为:

    image
    怎么实现,下面说。

03 show_start_info()欢迎进入游戏

先贴代码,待会讲解。


#开始信息显示
def show_start_info(screen):
    font = pygame.font.Font('myfont.ttf', 40)
    tip = font.render('按任意键开始游戏~~~', True, (65, 105, 225))
    gamestart = pygame.image.load('gamestart.png')
    screen.blit(gamestart, (140, 30))
    screen.blit(tip, (240, 550))
    pygame.display.update()

    while True:  #键盘监听事件
        for event in pygame.event.get():  # event handling loop
            if event.type == QUIT:
                terminate()     #终止程序
            elif event.type == KEYDOWN:
                if (event.key == K_ESCAPE):  #终止程序
                    terminate() #终止程序
                else:
                    return #结束此函数, 开始游戏
  • 字体显示
    先创建一个Font对象,用自己的字体。有了Font对象以后, 就可以用render方法来写字了,然后通过blit方法blit到屏幕上。
  • 图像加载
    用 pygame.image.load()加载图像获得对象,在用blit方法刷到屏幕上。做完以上事件以后,记得要update一下刷新一下屏幕。
  • 监听键盘
    按任意键继续或者ESC退出……

04 running_game-让我们开始游戏吧

running_game(screen, snake_speed_clock)是游戏主要功能,在这里给大家慢慢讲解。先贴代码:

#游戏运行主体
def running_game(screen,snake_speed_clock):
    startx = random.randint(3, map_width - 8) #开始位置
    starty = random.randint(3, map_height - 8)
    snake_coords = [{
   
   'x': startx, 'y': starty},  #初始贪吃蛇
                  {
   
   'x': startx - 1, 'y': starty},
                  {
   
   'x': startx - 2, 'y': starty}]

    direction = RIGHT       #  开始时向右移动

    food = get_random_location()     #实物随机位置
10分钟教你用Python做个打飞机小游戏超详细教程 我知道你们一定想先看效果如何 00 目录 整体框架 开始之前-精灵类Sprite 子弹类class Bullet 玩家飞机类class Player 敌机类class Enemy 游戏主体循环以及帧率设置 让子弹飞 刷出敌机 打怪 把飞机敌机子弹都画出来 处理键盘事件 分数显示 和 GameOver 最终代码 01 前言 这次还是用python的pygame库来做的游戏。关于这个库的内容,... 阅读详情

相关推荐

10分钟教你用Python打造一个AI贪吃蛇

愉快的开始 最近在修一门叫Python基础的课,然后匆忙之中做了这个AI贪吃蛇想交个大作业,结果老师的结课作业是给定了题目,我真是…… 首先说明一点哈,此AI非彼AI。今天要讲的AI贪吃蛇还是传统意义上遍历图的找路算法编写的,并不是利用机器学习进行学习控制的哈。 关于贪吃蛇 Python编写贪吃蛇的教程此前已经写过了,相关的传送门可以戳: 传送门: 10分钟教你用python打造贪吃蛇超详细教程...

infinitor的博客 1877

10分钟用Python编写一个贪吃蛇小游戏

贪吃蛇,大家应该都玩过。当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎。今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要的内容都是程序的内循环,这才是保证一个游戏能够正常运行的前提。 以下是编写贪吃蛇小游戏的主要思路。 废话不多说,我们直接来讲解如何利用Python进行贪吃蛇的编写吧 一、调用库以及初始设置 1. 调用第三方库 Python与其他语言很不一样的一点在于他有很多的第三方库可以调用。在P

m0_69951489的博客 9093

10分钟用Python编写贪吃蛇小游戏

首先看一下编写贪吃蛇小游戏的主要思路 废话不多说,我们直接来讲解如何利用Python进行贪吃蛇的编写吧 1.调用库以及初始设置 1.1 调用第三方库 Python与其他语言很不一样的一点在于他有很多的第三方库可以调用。在Python编写游戏时,pygame是一个很简单上手的第三方库,可以通过pip直接安装。安装方法在之前的文章中已经讲过,就不再赘述。想要了解更多pygame功能的朋友也可以查阅官方的文档。 这就是编写贪吃蛇时我们需要调用的库。 1import pygame 2import sys 3im.

3690

10 分钟用 Python 编写一个贪吃蛇小游戏

贪吃蛇,大家应该都玩过。当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎。今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要的内容都是程序的内循环,这才是保证一个游戏能够正常运行的前提。 以下是编写贪吃蛇小游戏的主要思路。 废话不多说,我们直接来讲解如何利用Python进行贪吃蛇的编写吧 一、调用库以及初始设置 调用...

wulishinian的博客 3067

编程小白也能轻松上手!Deepseek教你打造贪吃蛇游戏

编程小白也能轻松上手!Deepseek教你打造贪吃蛇游戏

ssty2025的博客 1445

零基础用Trae AI助手10分钟搞定贪吃蛇游戏(附完整Python代码)

本文介绍如何利用Trae AI助手快速开发贪吃蛇游戏,无需编程基础即可在10分钟内完成。通过自然语言描述需求,Trae能生成完整的Python代码,包括游戏框架、难度分级和音效优化。文章还提供了常见问题排查和调试技巧,帮助初学者轻松实现游戏自定义和扩展。

weixin_33701251的博客 229

用CodeGPT在PyCharm中5分钟搞定贪吃蛇游戏开发(附完整代码)

本文详细介绍了如何利用CodeGPT在PyCharm中快速开发贪吃蛇游戏,仅需5分钟即可完成从环境配置到完整代码实现的全过程。通过CodeGPT的智能代码生成功能,开发者可以高效搭建游戏框架、实现核心逻辑并优化代码,大幅提升Python游戏开发效率。

weixin_30369041的博客 257

ChatDev实战:5分钟用AI对话生成贪吃蛇游戏,体验AI辅助开发

在软件工程领域,自动化代码生成和AI辅助开发正成为提升效率的关键技术。其原理是通过自然语言处理(NLP)理解开发者意图,并结合预训练模型生成符合逻辑的代码。这项技术的核心价值在于将开发者从繁琐的语法和基础架构中解放出来,使其更专注于业务逻辑和创意设计。典型的应用场景包括快速原型构建、教学演示、代码片段生成以及探索新技术栈。本文以贪吃蛇游戏开发为例,深入展示了如何利用ChatDev这一多智能体协作框架,通过自然语言对话驱动完整的软件开发流程,涵盖了从需求分析、技术选型到代码编写与测试的全过程,为读者提供了AI

weixin_29290863的博客 329

别再死记硬背Sarsa公式了!用Python手搓一个‘贪吃蛇’AI,5分钟搞懂On-Policy策略

本文通过Python实现贪吃蛇AI,深入解析Sarsa算法的核心逻辑与应用。无需死记硬背公式,通过实战演示强化学习中的On-Policy策略,帮助读者快速掌握Sarsa算法在游戏AI中的实际应用。文章包含完整代码示例、算法对比及优化技巧,是学习强化学习的绝佳实践指南。

weixin_33443972的博客 279

利用Trae零基础开发微信小游戏:贪吃蛇实战指南

本文详细介绍了如何利用Trae零基础开发微信小游戏,以贪吃蛇游戏为例,从环境配置到核心逻辑实现,再到移植微信小程序的全过程。通过Trae的AI编程助手功能,开发者无需深厚编程基础,即可快速生成可运行代码,大幅提升开发效率。特别适合想尝试微信小游戏开发的新手。

weixin_30316097的博客 423

CTFshow渔人杯复盘:手把手教你用Python PIL和Burp搞定那些‘奇葩’MISC题

本文详细介绍了如何利用Python PIL库和Burp Suite自动化解决CTF比赛中的MISC难题,包括图像分析、重复请求处理和二进制逆向等实战案例。通过构建工具链和编写脚本,大幅提升解题效率,特别适合CTFshow等比赛中的复杂题目。

weixin_30718391的博客 537

python趣味编程-5分钟实现一个贪吃蛇游戏(含源码、步骤讲解)

中的贪吃蛇游戏是一个简单干净的 GUI,可轻松玩游戏。,免费且易于下载,只需找到下面的可下载源代码即可单击并开始下载,无需担心。第三,创建Python文件后,命名您的Python文件,然后单击“在给出的代码中,导入了执行游戏时要调用的所有模块。给出的代码是在执行游戏过程中要调用的变量的声明。在此模块中,这是用户正在使用的蛇的运动。在这个模块中,这是循环贪吃蛇游戏的函数。在这个模块中,这是游戏结束的代码。该模块中是启动贪吃蛇游戏的界面。”您的项目名称,然后单击“该模块中是游戏指令的界面。创建项目名称后单击“

xiaoshun007的专栏 426

python趣味编程-5分钟实现一个简单贪吃蛇游戏(含源码、步骤讲解)

你把这个Surface交给pygame.draw.circle()这样的绘图函数,当你调用pygame.display.flip时,这个Surface的内容就会被发送到screen()。SDL 和 pygame 都可以在多个平台上运行,因此您可以使用 Python 为任何支持它们的平台编写游戏和丰富的多媒体程序。在上面的示例中,导入 pygame 库后,您所做的第一件事是使用 pygame.init () 设置 PyGame。下面给出的代码行是关于立方体类的,其中包括程序中给出的蛇的设计。

xiaoshun007的专栏 281

0基础开发学习python工具_____ 初学者学习python捷径 牛13教程 导读篇

🌸🌷💐《零基础玩转Python编程:边做项目边学》摘要:本教程打破传统编程学习模式,采用"先实践后理论"的创新方法,让零基础用户通过10行代码实现烟花动画、50行代码复刻贪吃蛇等趣味项目,快速获得成就感。教程特色包括:1)免背语法直接做出可视化效果;2)从简单动画到可交互程序的渐进式学习路径;3)教你把Python程序打包成exe文件分享给朋友。学习只需准备普通电脑和免费编辑器,通过"做中学"的方式培养编程兴趣,最终实现独立开发实用工具的目标。

mg668的博客 302

【零代码基础的小白利用deepseek辅助编程从 0 到 1 开发小游戏 APP---实战教程】

从 0 到 1 开发小游戏 APP 详细教程 1. 准备工作 1.1 注册 DeepSeek 并获取 API 密钥 1.2 安装开发环境 2. 生成游戏框架 2.1 使用 DeepSeek 生成贪吃蛇游戏框架 2.2 运行游戏 3. 完善游戏功能 3.1 增加蛇的长度 3.2 增加游戏结束逻辑 4. 优化游戏体验 4.1 增加计分系统 4.2 增加音效 5. 打包为 APP 6. 持续学习和优化 6.1 学习更多功能 6.2 参考资源 1. 准备工作 1.1 注册 DeepSeek 并获取 API 密钥 访

Dreams°的博客 1207

java打飞机源码+图片资源全套

java打飞机项目,用纯java代码编写,包含项目所需的全部图片资源。注释齐全,简单易学,是学习java基础后的一个全面系统的练习性项目。不可错过。

支持找回微信删除好友!一款人人可用的全能微信数据分析工具

找回删除好友、查看删除记录、恢复聊天信息....

1726

基于ensp大学网络规划与设计(完整文档+ensp拓扑图)

大家好,我是小华学长,一名计算机领域的博主。经过多年的学习和实践,我积累了丰富的计算机知识和经验,在这里我想与大家分享我的学习心得和技巧,帮助你成为更好的程序员。 作为一名计算机博主,我一直专注于编程、算法、软件开发等领域,在这些方面积累了大量的经验。我相信分享是一种双赢的方式,通过分享,我可以帮助他人提升技术水平,同时也能够得到学习交流的机会。 在我的文章中,你将会看到我对于各种编程语言、开发工具以及常见问题的解析和分析。我会结合自己的实际项目经验,为你提供实用的解决方案和优化技巧。我相信这些经验不仅能够

qq1325513482的博客 5万+

ArcMap新手必看:5分钟搞定面要素的四至信息提取(附字段重命名技巧)

本文为ArcMap新手提供了快速提取面要素四至信息的详细教程,包括数据准备、坐标系选择、批量处理技巧及字段重命名优化方案。通过实战步骤和Python脚本示例,帮助用户高效完成GIS数据处理任务,特别适合行政区划数据分析和报告生成。

weixin_29266007的博客 384

单片机通信总述——理论部分(CAN、串口、SPI、I2C等)

并行通信:传输原理:数据各个位同时传输;优点:速度快; 缺点:占用引脚资源多。是指使用 8、16、32 及 64 根或更多的数据线(有多少信号为就需要多少信号位)进行传输的通讯方式,可以同一时刻传输多个数据位的数据。串行通信: 传输原理:数据按位顺序传输;优点:占用引脚资源少; 缺点:速度相对较慢。是指设备之间通过一根数据信号线,地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式,同一时刻只能传输一位(bit)数据。 单工: 数据传输只支持数据在一个方向上传输。信息只能单方向传输的工作方式,一

qq_42475191的博客 1万+

安装和使用pandoc

支持 Markdown、DOCX、LaTeX、HTML、PDF、EPUB 等 60+ 种格式 的互相转换

PLANTTHESON的博客 6832

Stanford Dogs 犬类识别实战:基于 YOLOv8 的 120 类目标检测与图形界面实现

本项目通过YOLOv8实现了Stanford Dogs数据集的目标检测功能,完整包含了数据准备、模型训练、检测推理、图形界面四大模块。初学者使用YOLOv8n(nano版)加速训练,熟悉流程后可切换到YOLOv8s/m。图像上传与检测可进一步增强,例如显示识别框、标注标签。可以添加模型选择、检测阈值调整等功能,提升实用性。通过网盘分享的文件:基于yolov8的狗类品种识别系统链接: https://pan.baidu.com/s/1UYV4h2WnK1RxWWKoPrS-RA?

FJN110的博客 84

【实验必备】对AffectNet数据集进行人脸对齐的小Demo

本文首先简单介绍了AffectNet数据集,及人脸关键点等背景知识,接着Po出了人脸对齐的代码及效果展示。注:本文代码参考自FG2021的Emotion-GCN的开源代码,具有一定的可靠性,欢迎大家学习!

信小海 2671

0.嵌入式控制器EC实战 Embedded Controller开发概述

文章目录前言1.嵌入式控制器EC概述2.EC芯片框图(IT8502为例)3.General Purpose I/O Port (GPIO)4.SMBus(System Management Bus,系统管理总线)5.PWM、TACH6.KBC(KeyBoard Controller)7.PS/28.ADC(模数转换)总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 1.嵌入式控制器EC概述 嵌入式控制器EC是挂在CPU的L

qq_30135687的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 【算法】关于图论中的最小生成树(Minimum Spanning Tree)详解
下一篇: 【python】10分钟教你用python下载和拼接微信好友头像图片
infinitor
博客等级 码龄9年 403粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值