使用 Keras 的 python 生成器线程安全

2024-01-23

我正在使用 Keras 进行一些机器学习,并使用此生成器来生成数据和标签:

def createBatchGenerator(driving_log,batch_size=32):
    batch_images = np.zeros((batch_size, 66, 200, 3))
    batch_steering = np.zeros(batch_size)
    while 1:
        for i in range(batch_size):
            x,y = get_preprocessed_row(driving_log)
            batch_images[i]=x
            batch_steering[i]=y
        yield batch_images, batch_steering

当我在本地使用它时,它运行良好,但是当我在带有 GPU 的 AWS g2.2xlarge 上运行它时,我收到此错误“ValueError:生成器已在执行”。有人可以帮我解决这个问题吗?


你需要做一个可以支持多线程的生成器 http://anandology.com/blog/using-iterators-and-generators/确保生成器同时被两个线程调用:

import threading

class createBatchGenerator:

    def __init__(self, driving_log,batch_size=32):
        self.driving_log = driving_log
        self.batch_size = batch_size
        self.lock = threading.Lock()

    def __iter__(self):
        return self

    def __next__(self):
        with self.lock:
           batch_images = np.zeros((batch_size, 66, 200, 3))
           batch_steering = np.zeros(batch_size)

           for i in range(self.batch_size):
               x,y = get_preprocessed_row(self.driving_log)
               batch_images[i]=x
               batch_steering[i]=y
           return batch_images, batch_steering
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Keras 的 python 生成器线程安全 的相关文章

  • pandas Wide_to_long 后缀参数

    我对在 pandas 中使用 Wide to long 时的参数有疑问 有一个参数叫suffix我不明白 在文档中它说 后缀 str 默认 d 捕获所需后缀的正则表达式 d 捕获数字后缀 没有数字的后缀可以用否定字符类 D 指定 您还可以进
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • 组和平均 NumPy 矩阵

    假设我有一个任意的 numpy 矩阵 如下所示 arr 6 0 12 0 1 0 7 0 9 0 1 0 8 0 7 0 1 0 4 0 3 0 2 0 6 0 1 0 2 0 2 0 5 0 2 0 9 0 4 0 3 0 2 0 1 0
  • 在Python中以交互方式执行多行语句

    我是 Python 世界的新手 这是我用 Python 编写的第一个程序 我来自 R 世界 所以这对我来说有点不直观 当我执行时 In 15 import math import random random random math sqrt
  • reStructuredText:README.rst 未在 PyPI 上解析

    我有一个托管在 Github 和 PyPI 上的 Python 项目 在 Github 上 https github com sloria TextBlob blob master README rst https github com s
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • 在谷歌云上训练神经网络时出现“无法获取路径的文件系统”错误

    我正在使用 Google Cloud 在云上训练神经网络 如下例所示 https cloud google com blog big data 2016 12 how to classify images with tensorflow u
  • 如何使用 Celery 多工作人员启用自动缩放?

    命令celery worker A proj autoscale 10 1 loglevel info启动具有自动缩放功能的工作人员 当创建多个工人时 me mypc projects x celery multi start mywork
  • 将列表中的 None 替换为最左边的非 none 值

    Given a None 1 2 3 None 4 None None I d like a None 1 2 3 3 4 4 4 目前我已经用以下方法强制它 def replaceNoneWithLeftmost val last Non
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • 用于多个窗口的 Tkinter 示例代码,为什么按钮无法正确加载?

    我正在编写一个程序 应该 按一下按钮即可打开一个窗口 按另一个按钮关闭新打开的窗口 我使用类 以便稍后可以将代码插入到更大的程序中 但是 我无法正确加载按钮 import tkinter as tk class Demo1 tk Frame
  • Selenium 不会在新选项卡中打开新 URL(Python 和 Chrome)

    我想使用 Selenium WebDriver 和 Python 在不同的选项卡中打开相当多的 URL 我不确定出了什么问题 driver webdriver Chrome driver get url1 time sleep 5 driv
  • 线性同余生成器 - 如何选择种子和统计检验

    我需要做一个线性同余生成器 它将成功通过所选的统计测试 我的问题是 如何正确选择发电机的数字以及 我应该选择哪些统计检验 我想 均匀性的卡方频率测试 每代收集10 000个号码的方法 将 0 1 细分为10个相等的细分 柯尔莫哥洛夫 斯米尔
  • 更换壳牌管道[重复]

    这个问题在这里已经有答案了 在 subprocess 模块的 Python 2 7 文档中 我找到了以下片段 p1 Popen dmesg stdout PIPE p2 Popen grep hda stdin p1 stdout stdo
  • Python 导入非常慢 - Anaconda python 2.7

    我的 python import 语句变得非常慢 我使用 Anaconda 包在本地运行 python 2 7 导入模块后 我编写的代码运行得非常快 似乎只是导入需要很长时间 例如 我使用以下代码运行了一个 tester py 文件 imp
  • 如何使用 os.chdir 转到减去最后一步的路径?

    例如 一个方法传递了一个路径作为参数 这个路径可能是 C a b c d 如果我想使用 os chdir 更改为 C a b 怎么办 c 没有最后一个文件夹 os chdir 可以接受 命令吗 os chdir 可以采取 作为论点 是的 然
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • Streamlabs API 405 响应代码

    我正在尝试使用Streamlabs API https dev streamlabs com Streamlabs API 使用 Oauth2 来创建应用程序 因此 首先我将使用我的应用程序的用户发送到一个授权链接 其中包含我的应用程序的客

随机推荐

  • inverse_of 在 mongoid 中意味着什么?

    What inverse of是什么意思 通过使用它而不是没有它的关联我能得到什么 在简单关系中 两个模型只能以一种方式关联 并且关系的名称自动是与其相关的模型的名称 这在大多数情况下都很好 但并不总是足够 inverse of允许您指定您
  • 如何修改主机头

    我正在尝试开发一个 chrome 扩展 它可以根据某些请求设置 主机 标头 但对于是否可以修改 host 标头 文档是矛盾的 这两个问题都表明a 这不应该是可能的 b 这是不可能的https code google com p chromi
  • 文本链接不会在 Safari 中使用名称通过 JavaScript 提交表单

    我正在使用 Safari 5 0 3 我的 html 中有一个表单
  • 这第二个新的是什么?

    第二行是什么 在回答另一个问题时看到的 int x new int 1 int y new x int 第二行之后 x 和 y 具有相同的值 指向相同的位置 y x 和第二行有什么区别 它像构造函数还是什么 It s 安置新 http en
  • 无法自动装配。存在多个“DataSource”类型的 bean

    我正在尝试通过以下方式自动连接数据库 Autowired private DataSource dataSource 我的数据源中有一个application yml spring profiles active dev spring pr
  • ASP.NET -> WCF 服务需要 Windows 身份验证

    我的任务是构建一个基本的管理应用程序 该应用程序需要一个 ASP NET 前端 该前端使用 WCF 与许多后端服务进行通信 一项要求是应用程序的用户使用 Windows 身份验证进行身份验证 如果应用程序逻辑包含在 ASP NET 应用程序
  • 如何改变CKEditor的编辑器大小?

    由于它是一个 textarea 我在 html 属性中尝试了 cols 50 但它不起作用 另外 我从上一个问题中找到了答案 他说我可以通过添加来做到这一点 CKEDITOR instances myinstance resize 1000
  • “JqueryStatic”类型的值不可调用

    我正在开发一个打字稿项目 当我调用 时 编辑器显示 JqueryStatic 类型的值不可调用 我安装了 jquery definetelyTyped 包 并且还引用了 jquery d ts 文件 Resharper 9 0 不支持 Ty
  • 如何使用zxing条码扫描库解码EAN128条码

    我正在尝试使用 zxing 条码扫描库读取 EAN128 条码 我在 Xamarin 共享项目中使用它 如下所示 private async void OnButtonForBarcodeReadPressed object sender
  • 为什么 pfpd.add_font() 中没有加载字体?

    我正在尝试将 pfpdf 库中的字体添加到生成的 pdf 文件中 但将 DejaVuSans ttf 移动到 data 目录后 无法再找到字体 这是一个简化的代码 from fpdf import FPDF import os pdf FP
  • 如何计算 DFT 中每个 bin 的能量?

    我正在测试我对离散傅里叶变换的了解 我现在测试的是如何使用DFT计算波的中心频率 为此 我使用以下代码创建正弦数据 create a 100 Hz wave with a sampling rate of 512 samples per s
  • 将 Q_GADGET 中的 Q_INVOKABLE 公开给 QML

    我最初的目标是在 QML 中提供枚举的名称 该名称可以通过 QMetaEnum 和 QVariant 的 toString 提供 这两者在 QML 中都不可用 Stack Overflow 上的文章展示了如何将 Q INVOKABLE 添加
  • 针对数据类型的张量流警告

    我已经在Python 3 7 4 64位 中安装了tensorflow和numpy 当我尝试导入它时 我收到以下警告 home user local lib python3 7 site packages tensorflow python
  • 处理用户身份验证(通过 Facebook)和应用程序内的安全通信

    也许下面的内容听起来有点奇怪 我有一些错误的假设 所以我希望你能原谅这一点 只是简单介绍一下我们想要实现的目标 现在我们正在开发一个应用程序 需要一个存储用户特定数据 例如图像 评论等 的后端 由于我们想要摆脱所有的用户身份验证 并且我们也
  • Android Studio 3.0 RC 2

    Error failed linking references Error java util concurrent ExecutionException java util concurrent ExecutionException co
  • foreach中内联运算和运算前计算的区别

    我让它变得简单 因为我在谷歌上没有找到任何东西 也许是因为我也不知道搜索什么 这有什么区别 foreach var x in g GetList code 和这个 IEnumerable list g GetList foreach var
  • PostgreSQL 聚合函数超出范围

    我正在尝试创建一个函数来找到交集tsrange 但我无法让它工作 CREATE AGGREGATE intersection tsrange SFUNC STYPE tsrange 您的尝试有两个修改 首先 我认为您不能使用运算符作为 SF
  • C编程-将数字分成数字并将它们保存在列表(数组)中[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想将数字分成数字并将它们保存在 C 中左侧带有零的 5 元素数组中 例如 如果有一个像 234 这样的数字 我想创建一个数组 0 0
  • 如何在浏览器url中隐藏spring mvc web应用程序名称?

    我在 eclipse 中有一个 spring mvc 3 x Web 应用程序 其中资源项目工件名称是 webapp 所以 http localhost 8080 webapp将使用 tomcat 7 和 eclipse IDE 加载主主页
  • 使用 Keras 的 python 生成器线程安全

    我正在使用 Keras 进行一些机器学习 并使用此生成器来生成数据和标签 def createBatchGenerator driving log batch size 32 batch images np zeros batch size