问题标签 [contiguous]
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 - PyTorch - contiguous() 做什么?
我在 github (link)上浏览了 LSTM 语言模型的这个例子。它的一般作用对我来说很清楚。但是我仍然在努力理解调用contiguous()
的作用,这在代码中出现了好几次。
例如,在代码输入的第 74/75 行,创建了 LSTM 的目标序列。数据(存储在 中ids
)是二维的,其中第一维是批量大小。
举个简单的例子,当使用批量大小 1 和seq_length
10时inputs
,targets
看起来像这样:
所以总的来说,我的问题是,做contiguous()
什么以及为什么需要它?
此外,我不明白为什么要为目标序列而不是输入序列调用该方法,因为这两个变量都包含相同的数据。
怎么可能targets
是不连续的,inputs
但仍然是连续的?
编辑:
我试图省略 call contiguous()
,但这会在计算损失时导致错误消息。
contiguous()
所以显然在这个例子中调用是必要的。
c# - C# 中具有固定大小数组的连续分层结构内存?
我有一个任务,在 C 中是微不足道的,但 C# 似乎(故意?)不可能。
在 CI 中,我会预先分配我的模拟的整个数据模型,通过设置为单个整体层次结构的结构,包括更多结构的固定大小数组,可能包含更多数组。这在 C# 中几乎是可行的,除了一件事......
在 C# 中,我们有一个fixed
关键字来在每个结构类型中指定固定大小的缓冲区(数组)——Cool。但是,这仅支持作为固定缓冲区元素类型的原语,在这些工作中抛出了一个主要的扳手,即拥有一个单一的、分层的和连续分配的数据模型,开始确保最佳的 CPU 缓存访问。
我可以看到的其他方法如下:
- 使用通过单独
new
(这似乎完全破坏连续性)在其他地方分配数组的结构 - 标准做法但效率不高。 - 使用原始类型的固定数组(例如
byte
),但是当我想改变事物时必须来回编组它们......这甚至可以轻松工作吗?可能非常乏味。 - 做(1),同时假设平台知道移动东西以获得最大的连续性。
我在 Unity 5.6 下使用 .NET 2.0。
sql - 如何仅在 Oracle 中按连续数据分组
我正在尝试显示每个费率以及开始和结束日期的笼子数量。这将进入发票,我们每天为每个笼子开具账单,这些笼子可以有不同的费率。
这不是一个简单GROUP BY
的获取MIN
和MAX
日期,因为笼子的数量可以下降或上升,然后再次回到相同的数字,所以我只需要查看连续数据。
我搜索了一个解决方案并找到了这个答案。我对其进行了一些修改以满足我的需要并提出了这个:
我在 PL/SQL 中运行了这个查询,它似乎非常适合我想要做的事情。当我尝试在我们正在使用的软件工具中插入解决方案时,结果发现它不支持ROW_NUMBER()
、OVER
和PARTITION BY
.
有没有一种方法可以在不必使用这些内置功能的情况下获得相同的结果?
我已经开始考虑ROW_NUMBER()
手动实施并找到了这种方法。当我测试它时它似乎有效,但我并没有真正插入它。我现在有点坚持实施PARTITION BY
,我只是觉得有点失落,不知道我是否朝着正确的方向前进。
编辑
我刚刚注意到查询返回了不正确的结果。
对于I1
带有7
笼子的情况,应该返回 2 行。第一行开始并结束于2017-11-07
,而第二行开始于2017-11-10
并结束于2017-11-11
。
mysql - MySQL - 按连续块分组
我正在努力制作一个GROUP BY
连续的块,我使用以下两个作为参考:
- GROUP BY 用于 SQL 中的连续行
-我如何在 MySQL 中进行连续的分组?
- https://gcbenison.wordpress.com/2011/09/26/queries-that-group-tables-by-contiguous-blocks/
我试图用给定状态的开始和结束日期来封装期间的主要想法。与其他示例不同的是,我使用每个 room_id 的日期作为索引字段(而不是顺序 id)。
我的桌子:
样本数据:
目标:
我在这方面做了两次尝试:
1)
这非常接近工作,但是当我打印出row_new它开始跳转 (1, 2, 3, 5, 7, ...)
2)
出于某种原因,这会返回一些null room_id 的结果,并且通常不准确。
c++ - 在 Cython 中创建一个连续数组并将其传递给 C++
编辑:这个问题已经解决。在制定下面的小例子时,一切都按预期工作。我留下了它以防有人发现它有帮助。显然,我的问题来自其他地方。
我正在使用 Cython 为 C++ 程序编写 Python 接口。C++ 程序使用一个连续的结构数组作为输入。我可以在 Cython 中创建这些结构的数组或向量,并将其传递给 C++ 程序。虽然这些容器应该是连续的,但当 C++ 迭代它们时(通过增加指向第一个元素的指针),很明显它们是不连续的。打印出结构体的一个字段会显示大量垃圾输出。
作为 Python 接口的示例:
然后这里是一些示例 C++ 代码。第一个“program.h”
现在“program.cpp”
现在假设我运行以下 Python 代码
这将按预期打印 1,3, 5。所以我不知道为什么这个简化的例子有效,但我的真实程序会吐出垃圾。我想我会把这个例子留在这里,以防其他人觉得它有用,但在这一点上回答我自己的问题似乎很愚蠢。
c - 当存在连续数组时,使用 MPI 用户定义的数据类型是否无用?
在我的程序中,我向其他处理器发送矩阵的一些行,我正在用 C 编码,我知道 C 是行优先的。矩阵被分配为一维数组。
我以这种方式发送它们
我怀疑是否必须使用一些临时数据类型来确保行的连续性,例如:
python - 检查numpy数组是否连续?
如何确定一个 n 维 numpy 数组Arr
在 C 风格还是 Fortran 风格中是连续的?
c - 传递给函数的变量是否存储在连续的内存位置?
我写了这个小函数:
是否保证包含n1
to的内存块n5
是连续的?既然我得到了预期的返回值,我希望如此,但我想知道这是否安全。
c++ - BIT WISE AND 的完美广场
对子数组进行按位与运算时,如何优化计算连续子数组的完全平方数的解决方案。时间复杂度应该是 O(n) 或 O(n*logn)。
这是天真的方法
c++ - std::vector 在内存中是什么样的?
我读到std::vector
应该是连续的。我的理解是,它的元素应该存储在一起,而不是分散在内存中。我只是接受了这一事实,并在例如使用其data()
方法获取底层连续内存时使用了这一知识。
但是,我遇到了一种情况,向量的内存以一种奇怪的方式表现:
我希望这会给我一个包含一些数字的向量和一个指向这些数字的指针向量。但是,在列出ptr_numbers
指针的内容时,会有不同的看似随机的数字,就好像我访问了错误的内存部分一样。
我试图检查每一步的内容:
结果大致如下:
所以似乎当我push_back()
到numbers
向量时,它的旧元素改变了它们的位置。
那么它到底是什么意思,这std::vector
是一个连续的容器,为什么它的元素会移动?它是否可能将它们存储在一起,但在需要更多空间时将它们一起移动?
编辑:std::vector
仅从 C++17 开始是连续的吗?(只是为了保持对我之前声明的评论与未来的读者相关。)