vectorize_sequences 的标准实现

2024-02-04

In 弗朗索瓦·肖莱 https://fchollet.com/'s 使用 Python 进行深度学习 https://www.manning.com/books/deep-learning-with-python,出现这个函数:

def vectorize_sequences(sequences, dimension=10000):
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
        results[i, sequence] = 1.
    return results

我明白这个函数的作用。在中询问此功能这个问题 https://stackoverflow.com/questions/50213274/vectorize-sequences-explanation and in 这个问题 https://stackoverflow.com/questions/57278076/dont-understand-how-this-example-one-hot-code-indexes-a-numpy-array-with-i-j另外,还提到了here https://stackoverflow.com/q/53191114/8565438, here https://stackoverflow.com/q/53249636/8565438, here https://stackoverflow.com/q/59161767/8565438, here https://stackoverflow.com/q/48131106/8565438, here https://stackoverflow.com/q/63705834/8565438 & here https://stackoverflow.com/q/60786305/8565438。尽管这种矢量化如此广泛,但根据 Chollet 的书,这种矢量化是“为了最大程度的清晰度而手动完成的”。我感兴趣的是是否有一个标准的,而不是“手动”的方式来做到这一点。

是否有一个标准的 Keras / Tensorflow / Scikit-learn / Pandas / Numpy 实现,其行为与上面的函数非常相似?


解决方案与MultiLabelBinarizer

假设sequences是一个整数数组,最大可能值可达dimension-1, 我们可以用MultiLabelBinarizer from sklearn.preprocessing复制函数的行为vectorize_sequences

from sklearn.preprocessing import MultiLabelBinarizer

mlb = MultiLabelBinarizer(classes=range(dimension))
mlb.fit_transform(sequences)

Numpy 广播的解决方案

假设sequences是一个整数数组,最大可能值可达dimension-1

(np.array(sequences)[:, :, None] == range(dimension)).any(1).view('i1')

已完成示例

>>> sequences
[[4, 1, 0], 
 [4, 0, 3],
 [3, 4, 2]]

>>> dimension = 10
>>> mlb = MultiLabelBinarizer(classes=range(dimension))
>>> mlb.fit_transform(sequences)

array([[1, 1, 0, 0, 1, 0, 0, 0, 0, 0],
       [1, 0, 0, 1, 1, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 1, 0, 0, 0, 0, 0]])


>>> (np.array(sequences)[:, :, None] == range(dimension)).any(1).view('i1')

array([[0, 1, 1, 1, 0, 0, 0, 0, 0, 0],
       [1, 0, 1, 0, 1, 0, 0, 0, 0, 0],
       [1, 1, 0, 0, 1, 0, 0, 0, 0, 0]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vectorize_sequences 的标准实现 的相关文章

随机推荐

  • 如何同时运行两个 python 循环?

    假设我在Python中有以下内容 A loop for i in range 10000 Do Task A B loop for i in range 10000 Do Task B 如何在 Python 中同时运行这些循环 如果你想要并
  • RU/m 去哪儿了?

    这曾经是 CosmosDb 的一项功能 用于提供每分钟请求单位 以及每秒请求单位 但是该选项似乎已从门户中消失 并且所有在线文档均已删除 谢谢 奥利弗 RU m 已死 刚刚收到微软的回复 我们收到了参与预览计划的客户的大量反馈 从 2017
  • 系统中 1 字节!= 8 位? [复制]

    这个问题在这里已经有答案了 我一直读这样的句子 不要依赖 1 个字节就是 8 位大小 use CHAR BIT而不是 8 作为常量在位和字节之间转换 et cetera What real life systems are there to
  • 如何使用 Gradle 在 JAR 中包含单个依赖项?

    我从 Gradle 开始 想知道如何将单个依赖项 在我的例子中为 TeamSpeak API 包含到我的 JAR 中 以便它在运行时可用 这是我的 build gradle 的一部分 apply plugin java compileJav
  • 对于登录应用程序,我将如何检查密码的 sha1 值?

    我将如何添加一个函数来检查数据库中用户 sha1 密码值
  • 如何从编译的二进制文件 (.so) 中删除字符串

    如何从编译的二进制文件中删除字符串 对其进行混淆 目标是避免人们阅读内部函数 方法的名称 它是使用 NDK 工具 包括 GCC 从 Android 的 C 代码编译的动态库 so 我编译用 O3并已经使用arm eabi strip g m
  • 函数式编程中的可变性

    首先我是 Haskell 新手 我读过这个 高度可变域中的不可变函数对象 https stackoverflow com questions 166379 immutable functional objects in highly mut
  • PHP Pear 安装程序停留在 21%

    我尝试在我的网站空间上安装 PHP Pear 我从以下位置上传了安装程序文件http pear php net go pear http pear php net go pear 我启动了安装程序 除了每次都卡在 21 之外 一切似乎都正常
  • 以太坊 Web3.js:内在 Gas 太低

    在过去的几天里 我一直在尝试在以太坊测试网 Rinkeby 上发送一笔交易 无论我将 Gas 增加多少 都会不断收到此错误 未处理的拒绝错误 返回错误 内在气体太低 我发送的数据是 0x7b22416e7377657273223a5b7b2
  • 节点expressJwt除非指定id路由

    我们正在使用expressJwt库 我希望能够排除GET对于以下路线api items id但不包括任何看起来像的路线api items id special action 到目前为止 我只能排除所有具有 id 下面是我们如何实现排除GET
  • 有没有办法免费获得 Borland Turbo C++ 编译器的古董版本?

    我正在寻找旧版本的 Borland Turbo C 编译器 但我必须以合法的方式得到它 有人听说过这种旧编译器有折扣吗 EDIT 我想出于教育目的公开我的旧源代码 但是它们只能在这个旧编译器上编译 我想向我的博客读者展示他们在学习新语言时应
  • 如何找到netbeans中使用的ant版本?

    我正在尝试这个教程Spring MVC Netbeans https sites google com site springmvcnetbeans step by step 我想知道 Windows 上的 netbeans 使用的是哪个版
  • D3.js v4 - 如何添加具有默认滚轮鼠标缩放行为的缩放按钮

    这个问题涵盖了与已经提出和回答的主题完全相同的主题 D3 js 如何添加具有默认滚轮缩放行为的缩放按钮 https stackoverflow com questions 25333309 d3 js how to add zoom but
  • GetObject("SAPGUI") 返回什么类型的对象?

    长话短说 如果我在初始化脚本中正确声明变量 则无法附加到 SAPFEWSELib GuiApplication 的 连接 对象 集合 MyApplication Children 0 是空的 但如果我注释掉声明块 它就可以工作 长话短说 我
  • 预构建事件后忽略 App.Config

    我有一个包含多个项目和多个开发人员的解决方案 每个开发人员都有自己的环境 当然 为了管理每个环境之间的连接字符串 我为每个环境创建了几个 app config 文件 app config dev app config qa 等 预构建事件只
  • Google Maps API v3:从数组添加标记不起作用

    首先感谢您考虑回答这个问题 非常感谢 我使用以下代码创建了一个地图 效果非常好 function initialize var mapOptions zoom 5 center new google maps LatLng 48 160 6
  • 模板不存在 Django

    我的 Django 模板位置列出为 python Lib site packages django contrib auth templates 在我看来我有 return render to response hello html nam
  • 通过代码 tradeview/pine 脚本隐藏图表、数量和信号标签上的交易

    每次我更新策略代码时 样式都会重置 这意味着 图表上的交易 信号标签 Quantity 被重置为显示 有没有办法覆盖该行为 以便我可以隐藏 图表上的交易 非常感谢您对这个看似微不足道的问题的帮助 不 默认情况下没有禁用它们的功能 前段时间我
  • MySQL 索引上的正则表达式

    我有查询在 where 子句中有多个正则表达式 where 子句中包含的列已被索引 但查询没有使用索引 MySql 正则表达式是否会导致使用索引 如果没有 解决方法是什么 不可以 正则表达式查找不能使用索引 如果您应用正则表达式的对象是索引
  • vectorize_sequences 的标准实现

    In 弗朗索瓦 肖莱 https fchollet com s 使用 Python 进行深度学习 https www manning com books deep learning with python 出现这个函数 def vector