如何在 Tensorflow RNN 中构建嵌入层?

2023-12-29

我正在构建一个 RNN LSTM 网络,根据作者的年龄对文本进行分类(二元分类 - 年轻/成人)。

看起来网络没有学习并突然开始过度拟合:

rnn_overfitting
Red: train
Blue: validation

一种可能是数据表示不够好。我只是按频率对独特的单词进行排序并给它们索引。例如。:

unknown -> 0
the     -> 1
a       -> 2
.       -> 3
to      -> 4

所以我试图用词嵌入来代替它。 我看到了几个例子,但我无法在我的代码中实现它。大多数示例如下所示:

embedding = tf.Variable(tf.random_uniform([vocab_size, hidden_size], -1, 1))
inputs = tf.nn.embedding_lookup(embedding, input_data)

这是否意味着我们正在构建一个层learns嵌入?我认为应该下载一些 Word2Vec 或 Glove 并使用它。

无论如何,假设我想构建这个嵌入层......
如果我在代码中使用这两行,我会收到错误:

类型错误:传递给参数“索引”的值的数据类型 float32 不在允许值列表中:int32、int64

所以我想我必须改变input_data键入至int32。所以我这样做了(毕竟都是索引),我得到了这个:

类型错误:输入必须是序列

我尝试包裹inputs(论点tf.contrib.rnn.static_rnn)和一个列表:[inputs]如建议的这个答案 https://stackoverflow.com/a/45217776/900394,但这又产生了另一个错误:

ValueError:输入大小(输入的维度 0)必须可通过 形状推断,但看到值 None。


Update:

我正在拆开张量x在将其传递给之前embedding_lookup。我在嵌入后移动了拆垛。

更新的代码:

MIN_TOKENS = 10
MAX_TOKENS = 30
x = tf.placeholder("int32", [None, MAX_TOKENS, 1])
y = tf.placeholder("float", [None, N_CLASSES]) # 0.0 / 1.0
...
seqlen = tf.placeholder(tf.int32, [None]) #list of each sequence length*
embedding = tf.Variable(tf.random_uniform([VOCAB_SIZE, HIDDEN_SIZE], -1, 1))
inputs = tf.nn.embedding_lookup(embedding, x) #x is the text after converting to indices
inputs = tf.unstack(inputs, MAX_POST_LENGTH, 1)
outputs, states = tf.contrib.rnn.static_rnn(lstm_cell, inputs, dtype=tf.float32, sequence_length=seqlen) #---> Produces error

*seqlen:我对序列进行了零填充,因此所有序列都具有相同的列表大小,但由于实际大小不同,我准备了一个描述没有填充的长度的列表。

新错误:

ValueError:层 basic_lstm_cell_1 的输入 0 与 该层:预期 ndim=2,发现 ndim=3。收到的完整形状:[无, 1, 64]

64是每个隐藏层的大小。

很明显,我的尺寸有问题......如何使输入在嵌入后适合网络?


来自tf.nn.static_rnn https://www.tensorflow.org/api_docs/python/tf/nn/static_rnn,我们可以看到inputs参数为:

长度为 T 的输入列表,每个输入都是形状为 [batch_size, input_size] 的张量

所以你的代码应该是这样的:

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

如何在 Tensorflow RNN 中构建嵌入层? 的相关文章

  • 将 pandas 数据框中的列减去其第一个值

    我需要将 pandas 数据帧的一列中的所有元素减去其第一个值 在这段代码中 pandas 抱怨 self inferred type 我猜这是循环引用 df Time df Time df Time 0 在这段代码中 pandas 抱怨为
  • python 可以检测它运行在哪个操作系统下吗?

    python 可以检测操作系统 然后为文件系统构建 if else 语句吗 我需要将 Fn 字符串中的 C CobaltRCX 替换为 FileSys 字符串 import os path csv from time import strf
  • Matplotlib 标准化颜色条 (Python)

    我正在尝试使用 matplotlib 当然还有 numpy 绘制轮廓图 它有效 它绘制了它应该绘制的内容 但不幸的是我无法设置颜色条范围 问题是我有很多图 并且需要所有图都具有相同的颜色条 相同的最小值和最大值 相同的颜色 我复制并粘贴了在
  • 如何屏蔽 PyTorch 权重参数中的权重?

    我正在尝试在 PyTorch 中屏蔽 强制为零 特定权重值 我试图掩盖的权重是这样定义的def init class LSTM MASK nn Module def init self options inp dim super LSTM
  • 打印 scrapy 请求的“响应”

    我正在尝试学习 scrapy 在遵循教程的同时 我正在尝试进行细微的调整 我想简单地从请求中获取响应内容 然后我会将响应传递到教程代码中 但我无法发出请求并获取响应内容 建议就好 from scrapy http import Respon
  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • Python:当前目录是否自动包含在路径中?

    Python 3 4 通过阅读其他一些 SO 问题 似乎如果moduleName py文件位于当前目录之外 如果要导入它 必须将其添加到路径中sys path insert 0 path to application app folder
  • 将 subprocess.Popen 的输出通过管道传输到文件

    我需要启动一些长时间运行的进程subprocess Popen 并希望拥有stdout and stderr从每个自动管道到单独的日志文件 每个进程将同时运行几分钟 我想要两个日志文件 stdout and stderr 每个进程当进程运行
  • Python 中的这种赋值方式叫什么? a = b = 真

    我知道关于元组拆包 http docs python org tutorial datastructures html tuples and sequences但是当一行中有多个等号时 这个赋值被称为什么 阿拉a b True 它总是让我有
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • 使用循环将对象添加到列表(python)

    我正在尝试使用 while 循环将对象添加到列表中 基本上这就是我想做的 class x pass choice raw input pick what you want to do while choice 0 if choice 1 E
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • Python Flask 是否定义了路由顺序?

    在我看来 我的设置类似于以下内容 app route test def test app route
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • 使用 Doc2vec 后如何解释 Clusters 结果?

    我正在使用 doc2vec 将关注者的前 100 条推文转换为矢量表示形式 例如 v1 v100 之后 我使用向量表示来进行 K 均值聚类 model Doc2Vec documents t size 100 alpha 035 windo
  • Python模块单元测试的最佳文件结构组织?

    遗憾的是 我发现有太多方法可以在 Python 中保存单元测试 而且它们通常没有很好的文档记录 我正在寻找一种 终极 结构 它可以满足以下大部分要求 be discoverable by test frameworks including
  • Google App Engine 中的自定义身份验证

    有谁知道或知道我可以在哪里学习如何使用 Python 和 Google App Engine 创建自定义身份验证流程 我不想使用 Google 帐户进行身份验证 并且希望能够创建自己的用户 如果不是专门针对 Google App Engin

随机推荐

  • 如何生成唯一的订单号?

    我正在寻找一种生成唯一订单 ID 的好方法 你能看出下面的代码有什么问题吗 int customerId 10000000 long ticks DateTime UtcNow Ticks long orderId customerId t
  • 我尝试将 postgresql md5 更改为 scram-sha-256,但出现 FATAL 密码身份验证失败

    我在用着postgresql作为学习的一部分 我尝试更改登录方法以获得更安全的登录方法 例如使用scram sha 256代替md5 我试图改变我的password encryption to scram sha256 in postgre
  • Ansible,字段 args 具有无效值[重复]

    这个问题在这里已经有答案了 我向我的 playbook yml 添加了一个名为 common 的角色 但配置失败并显示以下消息 TASK common Host is present gt cd fatal localhost FAILED
  • HTTP请求头X-Requested-With从哪里来

    众所周知 我们可以使用X Requested Withhttp请求头来判断http请求是否来自Ajax 许多 javascript 框架会自动添加X Requested Withajax请求中的header 比如jQuery Ajax ht
  • Java:如何通过 org.w3c.dom.document 上的 xpath 字符串定位元素

    如何通过给定 org w3c dom document 上的 xpath 字符串快速定位一个或多个元素 似乎没有FindElementsByXpath 方法 例如 html body p div 3 a 我发现当存在大量同名元素时 递归迭代
  • 如何访问白色的消息框?

    我在 WPF 应用程序中有一个简单的消息框 启动方式如下 private void Button Click object sender RoutedEventArgs e MessageBox Show Howdy Howdy 我可以得到
  • 如何检查一个 JavaScript 对象中的值是否存在于另一个 JavaScript 对象中?

    我正在尝试比较 json str1 和 json str2 这里它应该返回 true 因为 json str1 中的所有元素都存在于 json str2 中 现在我正在这样做 json str1 0 a 1 b 2 c json str2
  • jsp 包含中的 HTTP 状态 500 文件未找到错误

    我包含根目录中的文件 它在本地工作正常 但当我托管我的网站时 它给我 错误 HTTP 状态 500 未找到 connection jsp 我的文件在 public html myfolder connection jsp 在共享主机上 我想
  • 将集合绑定到 StackPanel

    我想获取一个对象集合并将其绑定到 StackPanel 所以基本上如果该集合有 4 个元素 那么在堆栈面板内应该生成 4 个按钮 我尝试过这个 但我认为这不是正确的方法 我过去使用 DataTemplated 做过这种类型的想法 如果我错了
  • 尽管集群已启动,Flink localhost 仪表板仍无法工作

    我已经下载了Flink 1 5 0并运行启动集群脚本 集群似乎已成功启动 bin start cluster sh Starting cluster Starting standalonesession daemon on host LAP
  • 为什么 Microsoft.NET.CoreRuntime.1.1.appx 出现依赖性 - UWP APPX

    当我用来创建项目的appx文件 x64发布模式 时 在依赖文件夹下只创建了Microsoft VCLibs x64 14 00 appx文件 但现在 当我尝试创建 appx 时 还在依赖项文件夹下创建了一个附加文件 Microsoft NE
  • 在 C# Blazor 中的分部类中初始化 RenderFragment

    我正在使用第三方包中的组件 该组件接受 RenderFragment 作为参数 并且我想通过索引页的部分类为该 RenderFragment 分配一个值 我意识到当我在中构建 RenderFragment 时code标签 它有效 但一旦你把
  • iPhone 5 (4") 底部工具栏没有响应

    我正在尝试修改一个应用程序以适应新的 iPhone 5 4 屏幕 我添加了新的启动图像 电子邮件受保护 cdn cgi l email protection 之后一切似乎都很好 我的视图的中间部分可以调整大小 但是我注意到 在有底部工具栏的
  • 获取 UIScrollView 内容的可见矩形

    我怎样才能找到屏幕上实际可见的显示视图内容的矩形 CGRect myScrollView bounds 上面的代码在没有缩放时有效 但一旦允许缩放 它就会在 1 以外的缩放比例下中断 为了澄清 我想要一个 CGRect 包含滚动视图内容相对
  • Rust:从标准输入读取和映射行并处理不同的错误类型

    我正在学习 Rust 并尝试用它解决一些基本的算法问题 在许多情况下 我想从标准输入读取行 对每行执行一些转换并返回结果项的向量 我这样做的一种方法是这样的 Fully working Rust code let my values Vec
  • Boost::Spirit 后跟默认值时字符加倍

    我使用 boost spirit 来解析单项式的 一部分 如 x y xy x 2 x 3yz 我想将单项式的变量保存到一个映射中 该映射还存储相应的指数 因此 语法还应该保存 1 的隐式指数 因此 x 存储起来就像写成 x 1 一样 st
  • 单击 R 字符串输出中的 URL

    假设我有 R 的 cat 函数的输出 它是一个 URL 例如 cat https en wikipedia org wiki Statistics Output https en wikipedia org wiki Statistics
  • 使用泛型类型时,“From”的实现如何会发生冲突?

    我正在尝试实现一个错误枚举 它可以包含与我们的特征之一相关的错误 如下所示 trait Storage type Error enum MyError
  • Python/NetworkX:动态计算边权重

    我有一个未加权的创建的图表networkx为此 我想根据边缘出现的计数 频率来计算节点之间的边缘权重 我的图中的一条边可以多次出现 但事先并不知道边出现的频率 目的是根据连接节点之间移动的权重 例如计数 频率 可视化边缘 本质上 我想创建连
  • 如何在 Tensorflow RNN 中构建嵌入层?

    我正在构建一个 RNN LSTM 网络 根据作者的年龄对文本进行分类 二元分类 年轻 成人 看起来网络没有学习并突然开始过度拟合 Red train Blue validation 一种可能是数据表示不够好 我只是按频率对独特的单词进行排序