将tensorflow 2.0 BatchDataset转换为numpy数组

2024-06-01

我有这个代码:

(train_images, _), (test_images, _) = tf.keras.datasets.mnist.load_data()

train_dataset = tf.data.Dataset.from_tensor_slices(train_images).shuffle(TRAIN_BUF).batch(BATCH_SIZE)
test_dataset = tf.data.Dataset.from_tensor_slices(test_images).shuffle(TRAIN_BUF).batch(BATCH_SIZE)

print(train_dataset, type(train_dataset), test_dataset, type(test_dataset))

我想投这两个BatchDataset变量到numpy arrays,我能轻松做到吗?我在用TF 2.0,但我刚刚找到了要转换的代码tf.data with TF 1.0


对数据集进行批处理后,最后一批的形状可能与其余批次的形状不同。例如,如果数据集中共有 100 个元素,并且批处理的大小为 6,则最后一批的大小仅为 4。(100 = 6 * 16 + 4)。

因此,在这种情况下,您将无法直接将数据集转换为 numpy。因此,您将不得不使用drop_remainder https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/data/Dataset#batch批处理方法中的参数为 True。如果最后一批尺寸不正确,它将丢弃它。

之后,我附上了有关如何将数据集转换为 Numpy 的代码。

import tensorflow as tf
import numpy as np

(train_images, _), (test_images, _) = tf.keras.datasets.mnist.load_data()

TRAIN_BUF=1000
BATCH_SIZE=64

train_dataset = tf.data.Dataset.from_tensor_slices(train_images).
                          shuffle(TRAIN_BUF).batch(BATCH_SIZE, drop_remainder=True)
test_dataset = tf.data.Dataset.from_tensor_slices(test_images).
                          shuffle(TRAIN_BUF).batch(BATCH_SIZE, drop_remainder=True)

# print(train_dataset, type(train_dataset), test_dataset, type(test_dataset))

train_np = np.stack(list(train_dataset))
test_np = np.stack(list(test_dataset))
print(type(train_np), train_np.shape)
print(type(test_np), test_np.shape)

Output:

<class 'numpy.ndarray'> (937, 64, 28, 28)
<class 'numpy.ndarray'> (156, 64, 28, 28)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将tensorflow 2.0 BatchDataset转换为numpy数组 的相关文章

随机推荐

  • 输入数字或 Q 退出

    大家好 我在设定的任务中遇到了一些问题 任务的第一部分是输出具有以下规则的价格表 50 件以内的价格为每件 5 英镑 51 至 80 之间的价格为每张 4 英镑 而 81 至 100 之间的价格为每张 2 50 英镑 使用循环结构和选择语句
  • 查找回收器视图中的第一个可见项目是否是列表的第一项

    我有一个包含 13 个数据项的回收器视图 我想知道列表中的第一项是否可见 我知道像这样的方法findFirstVisibleItemPosition and findLastVisibleItemPosition但他们没有说明第一个可见项目
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • C# .NET 4.0 测试框架?

    如果我没记错的话 NUnit 是单元测试事实上的标准 但我刚刚下载了它 编写了一个简单的测试 然后显然我必须启动 GUI 并加载我的 exe组装 根本就失败了 我尝试编辑 C Program Files x86 NUnit 2 5 7 bi
  • 如何检测不渲染 .png 透明的浏览器

    我有这段代码可以根据一周中的某一天渲染图像 但在 IE6 及更低版本以及可能其他一些浏览器中 它不会呈现 png 不透明度 所以我想稍微改变一下 这样它就会检测到不渲染 alpha 透明度的浏览器 并告诉他们加载这个图像 img horar
  • 从 xsd 生成 cXML 类会引发错误“元素‘uri:ds:Signature’丢失。”

    我正在尝试根据 cXML 1 2 034 版本生成 cXML 类http cxml org http cxml org XSD 由 Visual Studio 转换 我将 cXML dtd 转换为 xsd 然后尝试运行 xsd exe cX
  • 最有效地将编译时大小的数组的所有元素相加

    我正在尝试使用最少量的指令 有效地将所有内容添加到编译时大小的数组中 当然 我正在使用模板 我创造了这个 template
  • SQL Server 2008:如何使用 powershell 获取“消息”选项卡(在 Management Studio 中)输出

    我在用invoke sqlcmd管理我的数据库 它工作得很好 我将 Management Studio 中 结果 选项卡的输出保存到日志文件中 当我做一个BACKUP DATABASE 输出是在 消息 选项卡上完成的 我想将其保存在日志文件
  • Powershell:根据属性过滤属性

    我对 PowerShell 的自学经验有限 所以这可能是一些基本的东西 但我似乎无法正确理解 我在 Active Directory 中 需要提取电子邮件地址不以 SamAccountName 开头的用户列表 因此 如果您的登录名是 jdo
  • 如何使用 AngularJS、Devise 和 UI Router 全局实现身份验证?

    我对 Angular 很陌生 所以这可能是一个新手问题 我正在尝试实现一个简单的任务管理器 只是一个练习 以 Rails 作为后端 以 Angular 作为前端 到目前为止 我遵循了教程 一切正常 现在我想在全球范围内实施身份验证 这意味着
  • 检测CloudFoundry/Bluemix的版本

    我正在尝试检测 Bluemix Cloud Foundry 的版本 我可以使用一个命令来执行此操作吗 cf version 告诉您命令行界面的版本 但不告诉您要 推送 到的服务器的版本 thanks anthony 您可以通过 CloudF
  • 翠儿。让流永远运行

    我对 tweepy python 库比较陌生 我想确保我的流 python 脚本始终在远程服务器上运行 因此 如果有人能够分享如何实现这一目标的最佳实践 那就太好了 现在我正在这样做 if name main while True try
  • 加载时覆盖 WordPress 插件翻译文件

    我正在使用带有插件的法语版 WordPress活动日历 http wordpress org plugins the events calendar 该插件附带了捆绑的法语翻译 但有一些错误 我想修复它们 但替换原始文件是一个坏主意 因为它
  • 如何比较两个碳时间戳?

    我有两个时间戳 edited at 我创建的 和created at Laravel 的 在数据库中 两者都有时间戳类型和默认值 0000 00 00 00 00 00 但是 var dump edited at variable 正在给出
  • 无法获得与取消存档模块一起使用的“排除”选项

    我有一个 tar gzip 文件 我正在使用 ansible 取消归档模块将其提取到主机列表中 以下是configs tgz的部分内容列表 rw rw r ian ian 1295 2015 09 25 15 27 Makefile rw
  • Notepad++:: 通过正则表达式完全删除包含问号的行

    嗯 我想这就是我的标题 这对于我将要实现的目标来说是不言自明的 这是我当前的文本文件的示例 Diva was the winning song of the Eurovision Song Contest 1998 Who will win
  • 将 char* 转换为字符串 C++

    我知道字符串的起始地址 例如 char buf 和最大长度int l 字符串的 即字符总数小于或等于l 获取值的最简单方法是什么string来自指定的内存段 换句话说 如何实现string retrieveString char buf i
  • 如何使用 cython 编译扩展?

    我正在尝试从示例页面编译一个简单的 cython 扩展here http docs cython org src userguide tutorial html在我安装了 Python 2 6 64 位版本的 Windows 7 64 位计
  • Android studio 在日志猫中“清除全部”,更改日志级别过滤器时日志仍然会回来

    在 LogCat 中 当我单击 全部清除 按钮时 它似乎清除了所有日志 但是 如果我更改日志级别并返回到之前的日志级别 则所有日志都会返回 例如 我正在查看 Verbose 我选择 全部清除 日志清除 我切换到 调试 我切换回 详细 现在所
  • 将tensorflow 2.0 BatchDataset转换为numpy数组

    我有这个代码 train images test images tf keras datasets mnist load data train dataset tf data Dataset from tensor slices train