小编lhj*_*ohn的帖子

使用MirroredStrategy时出现AssertionError:isinstance(x,dataset_ops.DatasetV2)

我正在尝试使用MirroredStrategy来使用两个Titan Xp GPU来适应我的顺序模型。我在Ubuntu 16.04上使用tensorflow 2.0 alpha。

我成功地从tensorflow文档中运行了代码片段:

from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf

mirrored_strategy = tf.distribute.MirroredStrategy()
  with mirrored_strategy.scope():
  model = tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=(1,))])
  model.compile(loss='mse', optimizer='sgd')

dataset = tf.data.Dataset.from_tensors(([1.], [1.])).repeat(100).batch(10)
model.fit(dataset, epochs=2)
model.evaluate(dataset)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试训练我的数据时,它是一个稀疏的形状矩阵(使用adam优化器和二进制交叉熵):

Shape X_train: (91422, 65545)
Shape y_train: (91422, 1)
Run Code Online (Sandbox Code Playgroud)

我在_distribution_standardize_user_data中收到断言错误

assert isinstance(x, dataset_ops.DatasetV2)
Run Code Online (Sandbox Code Playgroud)

在tensoflow代码中,training.py中的 2166行似乎引起了此断言错误。

有人可以向我解释我的数据可能是什么问题吗?

python gpu assertion tensorflow

5
推荐指数
1
解决办法
408
查看次数

如何使用 tfa.layers.PoincareNormalize 实现庞加莱嵌入?

我正在尝试为我的分层数据实现 Poincar\xc3\xa9 嵌入,如 Facebook 的一篇论文(链接)中所讨论的。您可以在此处找到 Poincar\xc3\xa9 嵌入的更易于理解的解释。

\n

根据这篇论文,我在这里这里找到了 Tensorflow 的一些实现,以及Tensorflow Addons 中的tfa.layers.PoincareNormalize。后者甚至有上面提到的论文的链接,这让我相信这对我来说可能是一个很好的起点。然而,到目前为止,我没有成功实现 tfa.layers.PoincareNormalize,除了我链接的 API 页面上的一些通用信息之外,也找不到任何文档。

\n

有谁知道应该如何实现该层以提供论文中讨论的双曲空间中的嵌入?我的出发点是使用标准嵌入层的实现,如下所示(它实际上是分类变量的实体嵌入)?

\n
input = Input(shape=(1, ))\nmodel = Embedding(input_dim=my_input_dim, \n                    output_dim=embed_dim, name="my_feature")(input)\nmodel = Reshape(target_shape=(embed_dim, ))(model)\nmodel = Dense(1)(model)\nmodel = Activation(\'sigmoid\')(model)\n
Run Code Online (Sandbox Code Playgroud)\n

由于输入不同,仅用 tfa.layers.PoincareNormalize 替换 Embedding 层是行不通的。我假设它可以放置在嵌入层之后的某个位置,以便对于反向传播步骤,“值”在每次迭代时都投影到双曲空间中,但到目前为止也没有运气。

\n

python embedding hyperbolic-function tensorflow

4
推荐指数
1
解决办法
769
查看次数