问题标签 [tensor]

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 回答
1118 浏览

python - 在 keras 的自定义损失函数中做一些数学运算

我创建了一个具有三个密集层的 keras 顺序模型,我只创建了一个自定义损失函数,如下所示:

有了这个损失函数,一切都很好。

但现在假设我为“y_p”中的每条记录都有特定的“v”数组,我想做代码的第 5 行,以使“y_p”的点积与记录特定的“v”数组。换句话说,我有 'v' 向量的 bach_size 的数量,我想将 'y_p' 中的每条记录乘积到那个特定的 'v' 数组中。我想要的是如下所示:

但我收到错误“张量”对象不可迭代。我怎样才能以正确的方式实现我的损失函数我真的很感谢你的帮助

0 投票
0 回答
493 浏览

python - 在keras的自定义损失函数中获取真实的标签值

我刚刚为我的顺序 keras 模型实现了一个自定义损失函数。在损失函数中,我想得到 的值y_tTensor输入的值batch_size并用这些值做一些数学运算:

但是有了这个损失函数,我得到了这个错误:

我知道问题出在操作K.get_value(y_t_temp)中,但我需要获取值来计算该标签记录的向量,正如您在 for 循环中看到的那样。

我只想知道如何y_t在损失函数中获取值,或者如何以另一种方式实现此逻辑。

我保存额外信息的原因y_t是我想为vectors训练数据的馈送 batch_size 生成包含这些信息的数组。我可以vectors为所有火车数据在损失函数之外生成数组并将其传递给损失函数,但问题是损失函数每次都输入了火车数据的 batch_size 并且 batch_size 记录是从火车随机生成的据我所知,我不知道如何vectors在损失函数中过滤那些馈送数据的数组,因此我来到这个解决方案,vectors根据 batch_size 数据的一些额外信息在损失函数中制作数组,我发现没有方法,但y_t通过获取值来保存额外的信息y_t我可以处理我的问题。所以我真的很感激是否有任何其他方法可以vectors通过在损失函数中找到馈送数据的索引来过滤训练数据的馈送 batch_size 数组,或者vectors以某种方式将相应的过滤数组传递给损失函数。

我非常感谢您的帮助或任何其他解决方案来实现我的逻辑。

0 投票
1 回答
258 浏览

shape - mxnet (mshadow) 获取张量的形状

我是 mshadow 的新手,我不明白为什么我会从以下代码片段中得到这些输出:

输出是:

为什么第二个和第三个输出这些数字?因为lhs[0]是一维的,所以我认为它们应该是完全一样的,即3 0. 谁能告诉我我错在哪里?提前致谢!

0 投票
3 回答
12435 浏览

arrays - 有效地堆叠阵列/火炬张量的副本?

我是 Python/Pytorch 用户。首先,在 numpy 中,假设我有一个大小为 LxL 的数组 M,并且我想要以下数组:A=(M,...,M) 的大小,比如 NxLxL,是否有更优雅/内存有效的方法比:

与火炬张量相同的问题!原因,现在,如果 M 是变量(torch.tensor),我必须这样做:

这是丑陋的!

0 投票
2 回答
7365 浏览

python - Tensorflow:如何将混淆矩阵(张量)显示为数组?

我已经成功获得了(7x7)的混淆矩阵。它是张量形式。

我想查看混淆矩阵。尝试了 .eval 和 sess 方法,但它不起作用。

我的代码:

输出:

tf.SparseTensor.eval

神经网络:

0 投票
3 回答
11942 浏览

python - What is the output of tf.split?

So assuming I have this:

TensorShape([Dimension(None), Dimension(32)])

And I use tf.split on this tensor _X with the dimension above:

What is the shape of this new tensor? The output is a list so its hard to know the shape of this new tensor.

0 投票
1 回答
207 浏览

tensor - 数据未在 TensorFlow Worker 之间分发

我编写了一个分布式 TensorFlow 程序,其中包含 1 个 ps 作业和 2 个 worker 作业。我原以为数据批次会分布在工作人员之间,但似乎并非如此。我看到只有一名工作人员(task=0)在做所有工作,而另一名工作人员则处于空闲状态。你能帮我找出这个程序的问题吗:

以下是 task=0 的工作人员的日志:

2017-06-20 04:50:58.405431: I tensorflow/core/common_runtime/simple_placer.cc:841] Adagrad/value: (Const)/job:ps/replica:0/task:0/cpu:0 truncated_normal/stddev : (Const): /job:worker/replica:0/task:0/gpu:0
2017-06-20 04:50:58.405456: I tensorflow/core/common_runtime/simple_placer.cc:841] truncated_normal/stddev: ( const)/job:worker/replica:0/task:0/gpu:0 truncated_normal/mean: (Const): /job:worker/replica:0/task:0/gpu:0
2017-06-20 04:50 :58.405481: I tensorflow/core/common_runtime/simple_placer.cc:841] truncate_normal/mean: (Const)/job:worker/replica:0/task:0/gpu:0 truncated_normal/shape: (Const): /job:工人/副本:0/任务:0/GPU:0
2017-06-20 04:50:58.405506: I tensorflow/core/common_runtime/simple_placer.cc:841] truncated_normal/shape: (Const)/job:worker/replica:0/task:0/gpu:0 Worker 0:会话初始化完成。
提取下
一批 500 提取下一批 500 提取下一批 500 提取下一批 500 提取下一批 500 完成步骤 408800 ... ...

但从工人 2 (task=1) 的日志看起来像:

2017-06-20 04:51:07.288600: I tensorflow/core/common_runtime/simple_placer.cc:841] 零:(Const)/job:worker/replica:0/task:1/gpu:0 Adagrad/value:( const): /job:ps/replica:0/task:0/cpu:0
2017-06-20 04:51:07.288614: I tensorflow/core/common_runtime/simple_placer.cc:841] Adagrad/value: (Const) /job:ps/replica:0/task:0/cpu:0 truncated_normal/stddev: (Const): /job:worker/replica:0/task:1/gpu:0
2017-06-20 04:51:07.288639 : I tensorflow/core/common_runtime/simple_placer.cc:841] truncated_normal/stddev: (Const)/job:worker/replica:0/task:1/gpu:0 truncated_normal/mean: (Const): /job:worker/副本:0/任务:1/GPU:0
2017-06-20 04:51:07.288664: I tensorflow/core/common_runtime/simple_placer.cc:841] truncated_normal/mean: (Const)/job:worker/replica:0/task:1/gpu:0 truncated_normal/shape : (Const): /job:worker/replica:0/task:1/gpu:0 2017-06-20 04:51:07.288689: I tensorflow/core/common_runtime/simple_placer.cc:841] truncated_normal/shape: ( const)/job:worker/replica:0/task:1/gpu:0

我期待两位工人提供类似的日志。请帮助我理解这一点。期待您的帮助。

0 投票
1 回答
6891 浏览

tensorflow - TensorFlow中图像张量的形状是什么

我最近开始学习 Tensorflow,特别想使用卷积神经网络进行图像分类。我一直在查看官方存储库中的 android 演示,特别是这个示例: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowImageClassifier。爪哇

在第 145 行,它使用图像的输入数据创建一个张量,如下所示:

现在,我一直在试图理解它在做什么,它最终调用了这个方法:Tensor.create。我不明白的是,为什么这个函数的输入参数(也称为“维度”)给出的这个张量的形状是{1, inputSize, inputSize, 3}. 第二维和第三维是图像的宽高,第四维是图像的RGB数据。但为什么它的第一个维度为 1?这个张量的形状不应该{inputSize, inputSize, 3}改为吗?我想因为维度是 1 它没有区别,但我想这个符号一定是有原因的,我不明白。

0 投票
1 回答
197 浏览

python - Tensorflow 1.2 分配变量

正如标题所说,我正在为我的机器使用从源代码构建的 tensorflow 1.2 版。我不相信这会影响我的问题。

这两个代码块有什么区别?最上面的一个导致我在训练时永远不会得到分配的值,但最下面的却是。我将所有纪元数据复制到 gpu,然后根据需要获取每个批次的数据,因此此代码在同一会话中每个批次的开头运行。

代码在 python 中,所有这些都在我的模型类中定义。所有 self.data 对象都是 3D float32 张量。

0 投票
1 回答
131 浏览

c++ - TensorFlow 的 BitwiseXOR

我的项目需要一个新层,它需要 Tensor 的新运算符来计算输入 x 和常量 Key k 之间的按位异或。例如 x = 4(位形式:100),k = 7 (111),bitwiseXOR(x, k) 期望为 3 (011)。

据我所知,Tensor 只有布尔类型的 LogicXOR 运算符。幸运的是,Tensorflow 具有扩展能力,可以拥有一个新的 Op。但是,我阅读了https://www.tensorflow.org/extend/adding_an_op中的文档,我可以得到基本的想法,但这离实现还很远,可能是因为缺乏 c++ 知识。任何有关实施新运营商的建议都会有所帮助。然后我可以使用 Tensor 的新 Op 来构建新层。