问题标签 [computation-graph]
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.
python - 在 Tensorflow 中,您是否需要提供与您的需要无关的值?
我在 Tensorflow 中是否正确,当我做run
任何事情时,我feed_dict
需要为所有占位符赋予值,即使是那些与我正在运行的内容无关的占位符?
特别是我正在考虑做一个预测,在这种情况下我的targets
占位符是无关紧要的。
java - 将 ComputationGraph 放在 JAR DL4j 的资源目录中
在正常情况下,我可以将 ComputationGraph(卷积神经网络)保存到文件中并在以后的运行中加载它,它工作正常。
但是,当我将它包含在一个 jar 中并尝试加载它时,它会失败。
有没有办法从 Jar 内部加载 ComputationGraph 对象作为资源?
我让它适用于 Word2Vec 对象,但它在 ComputationGraph 对象上失败。
谢谢
tensorflow - 如何在 Tensorflow 的计算图中用另一个变量替换一个变量?
问题:我有两个预训练模型,变量W1,b1和W2,b2保存为numpy数组。
我想将这两个预训练模型的混合设置为我的模型的变量,并且只在训练期间更新混合权重alpha1和alpha2 。
为此,我创建了两个变量alpha1和alpha2并加载 numpy 数组并创建混合节点:W_new, b_new。
我想用W_new和b_new替换计算图中的 W 和 b ,然后只训练alpha1和alpha2参数opt.minimize(loss, var_list= [alpha1, alpha2])
。
我不知道如何在计算图中替换 W_new 和 b_new 。我尝试分配tf.trainable_variables()[0] = W_new
,但这不起作用。
如果有人能给我一些线索,我将不胜感激。
注意 1:我不想为 W 和 b 赋值(这会使图形与alpha1和alpha2断开),我希望参数的混合成为图形的一部分。
注意 2:您可能会说您可以使用新变量计算 y,但问题是,这里的代码只是一个简化的玩具示例。实际上,我有几个带有crf的bilstms而不是线性回归。所以我不能手动计算公式。我将不得不在图中替换这些变量。
我为什么要这样做?
假设您有多个预训练模型(在不同的域中),但您无权访问它们的任何数据。
然后你有一点来自另一个领域的训练数据,它不会给你带来那么多性能,但是如果你可以与你没有的数据一起训练模型,你可以获得良好的性能。
假设数据以某种方式在训练模型中表示,我们希望通过学习混合系数,使用我们作为监督的少量标记数据来学习预训练模型的混合。
我们不想预训练任何参数,我们只想学习预训练模型的混合。什么是混合重量?我们需要从我们所拥有的小监督中学习到这一点。
更新1:
我意识到我可以在创建模型之前将模型的参数设置为:
但正如我所说,我的真实模型使用了几个tf.contrib.rnn.LSTMCell对象。所以我需要提供 LSTMCell 类和新变量,而不是让它创建自己的新变量。所以现在的问题是如何设置 LSTMCell 的变量而不是让它创建它们。我想我需要继承LSTMCell 类并进行更改。有什么简单的方法可以做到这一点,这是我现在的问题。也许我应该将此作为一个新问题提出。
我想做的事:
在这里为此创建了一个单独的问题,因为由于不同的原因它可能对其他人有用。
python - 具有形状 = [] 的 TensorFlow tf.placeholder
我正在查看一个 Tensorflow 代码,该代码使用 shape = [] 的占位符将学习率输入到图形中,如下所示:
我查看了 Tensorflow 的官方文档页面(https://www.tensorflow.org/api_docs/python/tf/placeholder)以了解 shape=[] 的含义,但无法解释设置为空的形状列表。如果有人可以解释这是什么意思。
deep-learning - pytorch 的动态计算图中的权重更新如何工作?
当权重被分片(=多次重用)时,权重更新如何在动态计算图的 Pytorch 代码中工作
我想知道middle_linear
每一步使用多次的每个向后的重量会发生什么
python - 如何将张量附加到 PyTorch 计算图中的特定点?
如问题所述,我需要将张量附加到 Pytorch 计算图中的特定点。
我要做的是:在从所有小批量获取输出的同时,将它们累积在一个列表中,当一个时期结束时,计算平均值。然后,我需要根据平均值计算损失,因此反向传播必须考虑所有这些操作。
当训练数据不多时(无需分离和存储),我能够做到这一点。但是,当它变大时,这是不可能的。如果我不每次都分离输出张量,我的 GPU 内存就会用完,如果我分离,我会丢失计算图中输出张量的轨迹。看起来无论我有多少个 GPU,这都是不可能的,因为即使我分配了 4 个以上的 GPU,如果我在将它们保存到列表中之前不分离,PyTorch 只会使用前 4 个来存储输出张量。
非常感谢任何帮助。
谢谢。
java - Seq2Seq 模型 (DL4J) 做出荒谬的预测
我正在尝试在 DL4J 中实现 Seq2Seq 预测器模型。我最终想要的是使用数据点的时间序列来使用这种类型的模型INPUT_SIZE
来预测以下数据点的时间序列。OUTPUT_SIZE
每个数据点都有numFeatures
特征。现在,DL4J 有一些示例代码来解释如何实现一个非常基本的 Seq2Seq 模型。我在将他们的例子扩展到我自己的需要方面取得了一些进展;下面的模型可以编译,但它所做的预测是荒谬的。
我构建输入/标记数据的方式是将输入数据拆分为第一个INPUT_SIZE - 1
时间序列观察(对应in_data
于 ComputationGraph 中的输入)和最后一个时间序列观察(对应于lastIn
输入)。标签是未来的一个时间步长;为了做出预测,我只需调用net.output()
OUTPUT_SIZE
时间来获得我想要的所有预测。为了更好地看到这一点,这就是我初始化输入/标签的方式:
我相信我的错误来自我的计算图架构中的错误,而不是我如何准备数据/进行预测/其他东西,因为我已经完成了其他具有更简单架构的小型项目并且没有任何问题。
我的数据被归一化为均值 0 和标准值。偏差为 1。因此,大多数条目应该在 0 左右,但是,我得到的大多数预测都是绝对值远大于零的值(大约 10s-100s)。这显然是不正确的。我已经为此工作了一段时间,但一直无法找到问题;任何有关如何解决此问题的建议将不胜感激。
我使用的其他资源:示例 Seq2Seq 模型可以在这里找到,从第 88 行开始。计算图文档可以在这里找到;我已经广泛阅读了这篇文章,看看我是否能找到一个无济于事的错误。
nvidia - 有没有关于带有 deeplearning4j 的 nvidia cuda 编译器的解决方法?
将我的工具包从 8.0 更新到 10.0,但使用 cuda 10.0 在尝试初始化计算图时出现以下错误。
有什么解决方法吗,因为我的cc版本是5所以知道了
以前使用 cuda 工具包 8.0 和 nd4j-cuda-8.0 作为我的后端,一切正常。
numpy - tf.numpy_function 的性能缺陷?
我正在使用 atf.numpy_function
在我的 tensorflow 程序中加载文件。
我找不到有关使用 numpy_function 缺点的足够信息,是否有足够的麻烦将这个函数传递给 tensorflow 兼容代码?
非常感谢
python - 如何将树形结构的 lstm 实现为 tensorflow 中的递归神经网络?
我正在为我的情绪分析模型开发一个 tre_lstm,最后,我遇到了一个关于输入数据的各种形状的错误。由于每个输入文本可能具有不同的二叉树结构(以及不同数量的 lstm 单元),因此计算图不能是静态的。然而,在https://github.com/sapruash/RecursiveNN中,他们使用纯 TensorFlow 来实现利用静态计算图的 tree_lstm。我是作为他们的源代码开发的,但我得到了上述关于数据形状的错误。我不想使用 TensorFlow fold 和 PyTorch 来利用动态计算图。我得到的错误是这样的:
(0) 无效参数:所有输入的形状必须匹配:values[0].shape = [17] != values[2].shape = [23] [[node stack (defined at C:\Users\RAKA\Documents \tree_lstm\HSR_tree_lstm\tree_structured_lstm.py:150) ]]
第 150 行:
batch_loss = tf.stack(outloss)