tensorflow4:创建一个简单的强化学习游戏

2023-11-16

Deep Q Network是DeepMind最早(2013年)提出来的,是深度强化学习方法。最开始AI什么也不会,通过给它提供游戏界面像素和分数,慢慢把它训练成游戏高手。这里首先给出一个基本的游戏例子,然后再给出强化学习方法。
1.基本游戏

#coding=utf-8
import pygame
from pygame.locals import *
import sys
BLACK =(0,0,0)
WHITE = (255,255,255)

SCREEN_SIZE = [320,400]#屏幕大小
BAR_SIZE = [20,5]#挡板大小
BALL_SIZE = [15,15]#球的尺寸

class Game(object):
    def __init__(self):
        pygame.init()
        self.clock = pygame.time.Clock()#定时器
        self.screen = pygame.display.set_mode(SCREEN_SIZE)
        pygame.display.set_caption('Simple Game')

        self.ball_pos_x = SCREEN_SIZE[0]//2 - BALL_SIZE[0]/2
        self.ball_pos_y = SCREEN_SIZE[1]//2 - BALL_SIZE[1]/2
        #ball 移动方向
        self.ball_dir_x = -1 #-1:left 1:right
        self.ball_dir_y = -1# -1:up

        self.ball_pos = pygame.Rect(self.ball_pos_x,self.ball_pos_y,BALL_SIZE[0],BALL_SIZE[1])

        self.score =0
        self.bar_pos_x = SCREEN_SIZE[0]//2 - BAR_SIZE[0]//2
        self.bar_pos = pygame.Rect(self.bar_pos_x,SCREEN_SIZE[1]-BAR_SIZE[1],BAR_SIZE[0],BALL_SIZE[1])

    def bar_move_left(self):#左移
        self.bar_pos_x = self.bar_pos_x - 2

    def bar_move_right(self):
        self.bar_pos_x = self.bar_pos_x + 2

    def run(self):
        pygame.mouse.set_visible(0) #移动鼠标不可见
        bar_move_left =False
        bar_move_right = False
        while True:
            for event in pygame.event.get():
                if event.type == QUIT:
                    pygame.quit()
                    sys.exit()#接收到退出事件后退出程序

                elif event.type == pygame.MOUSEBUTTONDOWN and event.button ==1:#鼠标左键按下
                    bar_move_left = True
                elif event.type == pygame.MOUSEBUTTONUP and event.button == 1: #左键弹起
                    bar_move_left = False
                elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 3:#右键
                    bar_move_right = True
                elif event.type == pygame.MOUSEBUTTONUP and event.button
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tensorflow4:创建一个简单的强化学习游戏 的相关文章

  • Keras 显示 GPU 训练速度没有任何改进(部分 GPU 使用?!)

    我正在尝试在我的 Jupyter Notebook 的 AWS p2 xlarge 实例上的 GPU 而不是 CPU 上训练我的模型 我正在使用tensorflow gpu后端 仅tensorflow gpu已安装并在中提到requirem
  • 如何将张量推送到 TensorFlow 队列并从另一个进程中提取它们?

    我有一个 TensorFlow 集群已启动并正在运行 我正在尝试使用一个客户端进程将数据入队 并将其从另一进程中出队 我无法让它工作 我做错了什么 这是我的推送数据的程序 queue push py import tensorflow as
  • 打印出网络架构中每一层的形状

    在 Keras 中 我们可以如下定义网络 有什么办法可以输出每层之后的形状 例如 我想打印出以下形状inputs在定义行之后inputs 然后打印出形状conv1在定义行之后conv1 etc inputs Input 1 img rows
  • Tensorflow DecodeJPEG:预期图像(JPEG、PNG 或 GIF)以“\000\000\000\000\000\000\000\00”开头的格式未知

    我正在循环浏览图像文件夹 这种情况不断发生 tensorflow python framework errors impl InvalidArgumentError 预期的图像 JPEG PNG或GIF 以 000 000 000 000
  • 无法从 DenseVariational 获得合理的结果

    我正在尝试使用以下大小的数据集 正弦曲线 进行回归问题500 首先 我尝试使用 2 个密集层 每个层有 10 个单元 model tf keras Sequential tf keras layers Dense 10 activation
  • 使用自定义层运行 Keras 模型时出现问题

    我目前正在攻读学士学位论文FIIT STU https www fiit stuba sk en html page id 749 其主要目标是尝试复制和验证以下结果study http arxiv org abs 2006 00885 这
  • 跨多个 GPU/机器的 TF-Slim 的配置/标志

    我很好奇是否有关于如何使用部署 model deploy py 在多台机器上的多个 GPU 上运行 TF Slim models slim 的示例 该文档非常好 但我缺少一些内容 具体来说 需要为worker device和ps devic
  • Keras:加载多个模型并在不同线程中进行预测

    我正在使用带有张量流核心的 Keras 我想在构造函数中加载 2 个不同的模型 然后在不同的线程中进行预测 根据请求 我尝试在张量流图上下文中加载这些模型 但它不起作用 我的代码 from keras models import load
  • 支持 Nvidia CUDA 工具包 9.2

    Tensorflow gpu 绑定到 Nvidia CUDA Toolkit 的特定版本的原因是什么 当前版本似乎专门寻找 9 0 并且不适用于任何更高版本 例如 我安装了最新的 Toolkit 9 2 并将其添加到路径中 但 Tensor
  • 使用输入管道时如何替换 feed_dict?

    假设您有一个已与feed dict到目前为止将数据注入到图表中 每隔几个时期 我就会通过将任一数据集的一批数据输入到我的图表中来评估训练和测试损失 现在 出于性能原因 我决定使用输入管道 看看这个虚拟示例 import tensorflow
  • Tensorflow推荐的系统规格?

    我开始在我的 RHEL 6 5 机器上安装 Tensorflow 但事实证明 Tensorflow 需要 glibc gt 2 17 而 rhel 6 5 上默认的 glibc 是 2 12 我想知道是否有人可以帮助我了解张量流的最低 推荐
  • Tensorflow GPU 设置:PyCharm 上的 CUDA 错误

    我在 Python3 MacOSX El Capitan 上安装了 TF 0 8 当为 TF 运行简单的测试代码时 我收到以下消息 ImportError dlopen Library Frameworks Python framework
  • 在 Tensorflow 对象检测 API 中将图像裁剪到边界框

    如何将图像裁剪到 Tensorflow 中的边界框 我正在使用Python API 从文档来看 tf image crop to bounding box image offset height offset width target he
  • Tensorflow图像读取空

    这个问题是基于 Tensorflow图像读取与显示 https stackoverflow com questions 33648322 tensorflow image reading display 根据他们的代码 我们得到以下内容 s
  • 用于测试张量流安装的速度基准

    我怀疑我的 GPU 机器上是否正确配置了张量流 因为在我精美的 GPU 机器上训练一个简单的线性回归模型 批量大小 32 1500 个输入特征 150 个输出变量 的每次迭代速度比在笔记本电脑上慢 100 倍 我使用的是 Titan X 配
  • Tensorboard 和 Dropout 层

    我有一个非常基本的查询 我制作了 4 个几乎相同 差异在于输入形状 的 CNN 并在连接到全连接层的前馈网络时合并了它们 几乎相同的 CNN 的代码 model3 Sequential model3 add Convolution2D 32
  • Tensorflow新Op CUDA内核内存管理

    我已经使用 GPU CUDA 内核在 Tensorflow 中实现了一个相当复杂的新 Op 该操作需要大量动态内存分配 这些变量不是张量 并且在操作完成后被释放 更具体地说 它涉及使用哈希表 现在我正在使用cudaMalloc and cu
  • 将 Pytorch 模型 .pth 转换为 onnx 模型

    我有一个预训练的模型 其格式为 pth 扩展名 我想将其转换为 Tensorflow protobuf 但我没有找到任何方法来做到这一点 我见过 onnx 可以将模型从 pytorch 转换为 onnx 然后从 onnx 转换为 Tenso
  • Tensorflow 到 ONNX 的转换

    我目前正在尝试转换我使用本教程创建的已保存 且正在工作 的 pb 文件 https github com thtrieu darkflow https github com thtrieu darkflow 到 onnx 文件中 我目前正在
  • 在tensorflow.js中对张量进行分区、屏蔽或过滤

    我有 2 个相同长度的张量 data and groupIds 我想分开data通过相应的值分成几组groupId 例如 const data tf tensor 1 2 3 4 5 const groupIds tf tensor 0 1

随机推荐

  • 百度文库等类似工具的免费下载工具

    百度文库如何免费下载文献 软件介绍 百度文库如何免费下载文献 冰点文库下载器V3 1 9 亲测 可用 软件介绍 无需积分就可以自由下载百度 豆丁 丁香 MBALib 道客巴巴 Book118等文库文档 无需注册和登录 下载的文档最终生成高清
  • 跳动爱心代码-李峋爱心代码(手把手教学)

    电视剧 点燃我 温暖你 打火机与公主裙 李洵爱心跳动效果 获取完整代码 公众号 ClassmateJie 回复爱心代码 本文分为两种方式讲解如何运行代码 第一种方式比较简单推荐新手 完全不懂编程的 第二种方式需要有一定的编程基础的人 跟着我
  • Pytorch Advanced(三) Neural Style Transfer

    神经风格迁移在之前的博客中已经用keras实现过了 比较复杂 keras版本 这里用pytorch重新实现一次 原理图如下 from future import division from torchvision import models
  • spring-boot-devtools引发的类加载器问题

    问题描述 最近在使用spring boot开发系统 发现在某种情况下一些数据库操作会报异常 是hibernate报出来的 在IntellijIDEA中启动程序 nested exception is org hibernate proper
  • cmake入门系列总结四

    cmake入门系列总结四 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 14 初稿 目录 文章目录 cmake入门系列总结四 版本说明 目录 一 添加系统自省 二 具体目录结构和演示 三 最后 一 添加系统自省 接下来让
  • Rxjava初步理解

    本质就是通过回调实现 Observable被观察对像 成员变量onSubscribe Subscriber 观察对象 订阅 Observable subscribe先调用Subscriber onStart 然后调用onSubscribe中
  • 如何怎样安装nvm

    使用宝塔的Nodejs环境体验比较差 如果要完全使用命令行 应该如何玩转呢 今天我们简要介绍下步骤 方便大家自己使用 首先 我们创建一个文件install sh 然后将下面代码复制粘贴进去 usr bin env bash this ens
  • PowerDesigner生成Excel版本的数据库文件

    File pdm2excel txt Title pdm export to excel Purpose To export the tables and columns to Excel Model Physical Data Model
  • Python - Numpy库的使用(简单易懂)

    目录 numpy多维数组 数组的创建 1 array函数创建数组对象 2 通过arange linspace函数创建等差数组对象 3 通过logspace函数创建等比数列数组 函数 zeros ones diag eye full nump
  • 区块链技术的特点

    区块链技术是一种去中心化的分布式账本技术 它有以下优势和应用场景 1 去中心化 区块链是一种去中心化的技术 因此可以在不需要任何中心机构或者第三方的情况下 实现信息交换和价值转移 这使得它可以在许多领域得到应用 2 可追溯性 区块链技术可以
  • 为什么设置不了这是一台家用计算机,图文演示win10专业版更改不了这是一台家庭计算机的详尽处理步骤...

    win10系统从发布到现在已经好多年了 各种问题也得到了解决 但是今天还是有用户说出现了win10专业版更改不了这是一台家庭计算机的问题 很多网友都没有关于win10专业版更改不了这是一台家庭计算机的问题的处理经验 如果你咨询很多人都不知道
  • 520表白季——你表白成功了吗

    晓玲 小A 你昨天不是向D君表白了吗 今天这是怎么了 怎么还一副伤心的样子 泪眼汪汪的 小A 5555 晓玲姐姐 D君他居然说我是花心大萝卜 我明明就只喜欢他一个啊 晓玲 这样啊 走 我们去找定位帮帮忙 Ctrl G调出定位对话框 gt 定
  • JS 正则表达式截取指定字符的前面后面的内容

    1 js截取两个字符串之间的内容 let str web辣鸡工程师前端 str str match web S 前端 1 alert str 辣鸡工程师 2 js截取某个字符串前面的内容 var str 内容 截取字符串 str str m
  • 如何在vue中引入百度地图

    1 进入百度地图开放平台官网 进行实名认证 https lbsyun baidu com 2 完成实名认证后 进入控制台 3 进入应用管理 gt 我的应用 gt 创建应用 4 根据应用场景更改应用类型 5 白名单填写 gt 提交 6 这样就
  • 机器人编程课必要性

    机器人编程课必要性 说起小孩的学习 想必家长们都是非常的有发言权的 很多的家长想要孩子去学习机器人编程的课程 但是有的家长对于机器人编程课必要性并不是特别的清楚 他们不知道孩子学习机器人编程有啥好处 今天我们就一起来了解一下机器人编程课必要
  • 年末盘点,2021年最值得推荐的10个提高开发效率工具,程序员必备

    程序员的日常工作中 好用的工具往往能让我们事半功倍 极大提升我们的开发效率 接下来分享下我平时工作中经常使用的一些工具 也欢迎大家在评论区给我推荐一些好用的工具软件 一起学习 一 网络抓包工具 1 Proxyman 平时自己编写的程序网络通
  • MySQL 多种查询方法

    这里写目录标题 查询 1 单表查询 1 选择表中的若干列 2 选择表中的若干元组 3 order by子句 4 聚集函数 5 group by分组 2 连接查询 1 等值与非等值连接查询 2 自身连接 3 外连接 4 多表连接 3 嵌套查询
  • CSS学习(六)

    定位 为什么需要定位 提问 以下情况使用标准流或者浮动能实现吗 某个元素可以自由的在一个盒子内移动位置 并且压住其他盒子 当我们滚动窗口的时候 盒子是固定屏幕某个位置的 以上效果 标准流或浮动都无法快速实现 此时需要定位来实现 所以 浮动可
  • vscode 检查c代码语法和补全_VScode下搭配ESLint、TSLint、stylelint的代码检查配方

    使用VScode打开项目时 避免项目路径过深 尽量做到开发a项目就打开a项目 如 dir path path a这样的路径 不要vscode打开 dir来开发 a 因为可能会导致eslint的一些提示出现不准确的现象 关键词 ESLint配
  • tensorflow4:创建一个简单的强化学习游戏

    Deep Q Network是DeepMind最早 2013年 提出来的 是深度强化学习方法 最开始AI什么也不会 通过给它提供游戏界面像素和分数 慢慢把它训练成游戏高手 这里首先给出一个基本的游戏例子 然后再给出强化学习方法 1 基本游戏