问题标签 [trax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

tensorflow - 重新实现 bert-style pooler 会引发形状错误,就好像仍然需要长度维度一样

我已经训练了一个现成的 Transformer()。

现在我想使用编码器来构建分类器。为此,我只想使用第一个令牌的输出(bert-style cls-token-result)并通过密集层运行它。

我所做的:

形状: 编码 器 给我形状(64、50、512)64 = batch_size, 50 = seq_len, 512 = model_dim

pooler 为我提供了符合预期和期望的形状(64, 512)。

密集层应该为每个批次成员采用 512 个维度并分类超过 7 个类。但我猜 trax/jax 仍然希望它的长度为 seq_len (50)。

我想念什么?

完整追溯:

0 投票
0 回答
24 浏览

machine-learning - 为什么 Trax 会自动在子图层上创建串行图层?

我在Trax(Google 的深度学习库)中实现了一个串行层。尽管已经声明了一个,为什么还要创建一个额外的 Serial 层?

下面是代码。

输出是:

虽然它应该是

0 投票
1 回答
146 浏览

trax - trax tl.Relu 和 tl.ShiftRight 层嵌套在串行组合器中

我正在尝试构建一个注意力模型,但默认情况下 Relu 和 ShiftRight 层嵌套在串行组合器内。这进一步给了我训练中的错误。

输出

预期产出

tl.ShiftRight() 也会出现同样的问题

以上代码取自官方文档Example 5

提前致谢

0 投票
0 回答
39 浏览

nlp - 如何在 selfAttention 类中使用多头选项?

我正在玩trax库中的自注意力模型。

当我设置时n_heads=1,一切正常。但是当我设置时n_heads=2,我的代码会中断。

我只使用输入激活和一个 SelfAttention 层。

这是一个最小的代码:

但我有一个错误:

我做错了什么?

0 投票
0 回答
54 浏览

python - google trax 如何输出多类预测,我怎么知道它们属于什么标签?

我对 Trax 如何输出预测感到困惑。您可以观察到预测只包含 11 个预测,但它们是如何排列的以匹配我的预测标签?

上述代码的输出是:

trax 输出预测如何排序以匹配我的标签?

0 投票
0 回答
26 浏览

deep-learning - 如何创建子词词汇文件,例如 ende_32k.subword

如何在以下示例中创建诸如 ende_32k.subword 之类的 vocab_file

因为我正在处理阿拉伯语文本文件,所以我想创建自己的子词词汇,就像在 deeplearning.ai 中使用的那样。如何创建自己的特定于阿拉伯语数据集和词汇表的子词文件?问候

0 投票
2 回答
307 浏览

python - 如何在 macOS 12 上的 M1 Mac 上安装 trax、jax、jaxlib?

trax

新手trax,我正在尝试在本地运行它(macOS 12.1、Apple Silicon ARM M1 处理器、8GB RAM、Anaconda),但我遇到了一些问题。

在使用 python 3.8.5 的环境中,我安装了在(Anaconda)conda 环境中trax运行。pip3 install trax==1.3.9后来,我尝试trax在我的代码中导入图层时遇到了问题from trax import layers as tl

我急忙用python 3.10开始了一个新的conda环境。然后在尝试安装时遇到问题trax

然后我用 python 3.9 创建了一个新环境。安装很顺利,但是在导入图层时遇到了同样的错误:

安装前jaxlib_jaxtrax

然后我尝试按照这些说明从源代码构建 jaxlib并收到此错误:

强调我最初错过的部分:bazel 目前无法从包含空格的路径 (/my path/jax) 正常工作

我将/my path/目录移动到没有空格的路径/mypath/。删除并重新下载 jax 目录。尽管如此,构建(对于CPU)还是python build/build.py失败了:

再次尝试了几次(删除并重新下载了 jax 目录),同一行 528.../lib/python3.9/subprocess.py似乎导致了问题,但输出(虽然主要是上述内容)有时略有不同。考虑到我(诚然)几周内没有重新启动我的机器并且它开始无响应地变慢,这让我怀疑是内存问题。

我将我的 XCode 命令行工具更新到了 12.2 版(很确定)。

我重新启动了我的(8GB)机器。删除并重新下载 jax 目录。我用自制软件安装了 bazel 5.0.0 版,以防万一。我有点担心它一直在为我的 ARM 处理器下载 x86 版本。bazel安装很顺利。

这些说明重新开始。但是,该jaxlib构建明确表示它需要早期(4.2.1)版本的 bazel 并像以前一样下载它:

再次,在同一行 528 中出现不同的错误。现在显示完全运行:

我不再尝试构建 jaxlib。2021年10 月下旬,发布了兼容 M1 的 jaxlib 轮子,所以我尝试了:

但得到了

尝试将 python 从 3.9 升级到 3.10,但得到了相同的消息。

调试,在python中,运行

这表明我的 python 仍在 x86 架构上运行,因为"Anaconda 还没有为 M1/ARM 提供软件包"

[请参阅下面自己的答案中的成功(到目前为止)jaxlib安装]

回到trax

成功安装jaxliband后jax,尝试trax使用(miniforge's)安装时,conda install trax我得到:

我尝试按照trax自己的建议进行安装,但遇到了错误hp5y

现在调查这个错误,并考虑miniforge再次这样做,但使用 Anaconda 的频道来安装trax. 当我得到它时,我会更新。

任何指针或任何人设法trax通过任何不同的方式将它安装在 M1 Mac 上?

0 投票
0 回答
13 浏览

python - 训练模型后如何在 Trax 中切换到预测模式?

我正在熟悉用于构建深度学习模型的 Trax 库,一个我找不到答案的问题是如何在模型训练完成后从“训练”模式切换到“评估”模式。

考虑这个带有变压器的例子(从https://github.com/google/trax#1-run-a-pre-trained-transformer修改)

训练结束后,如何将模式切换为“预测”?

想到的一个想法(遵循相同的示例)是训练模型,然后保存它,重新初始化模型,但这次使用mode='train'然后通过运行加载权重model.init_from_file(file)

有没有办法直接做到这一点而不必重新初始化模型?

0 投票
1 回答
20 浏览

python - 导入 trax 加载时间过长

我第一次加载这个库时被难住了。在我的本地计算机上,我在本地 Jupyter Notebook 上加载至少需要 40trax秒,在共享的 Colab 环境中加载它需要超过 1 分钟。

我不确定这是我的安装问题还是我正在使用的trax版本中的 BUG?

我是 trax 的新手,事实上我的经验是使用 Keras 和 TensorFlow,所以我想从 trax 社区的某个人那里得到意见,如果这是否正常。

提前非常感谢!

顺便说一句:我正在使用trax 1.4.1Python 3.9.6并且我的本地计算机具有以下规格: