在 Chapel 中使用矩阵创建域

2024-03-28

我有一个域名D,我想用它来索引几个矩阵A。某种形式的东西

var dom: domain(1) = {0..5};
var mats: [dom] <?>;

var a0 = [[0.0, 0.1, 0.2], [0.3, 0.4, 0.5]];
var a1 = [[1.0, 1.1, 1.2, 1.3], [1.4, 1.5, 1.6, 1.7]];

mats[0] = a0;
mats[1] = a1;

Each a将是 2D 但具有不同的尺寸。是的,其中一些将是稀疏的(但不一定是为了这个问题的目的)

==更新==

为了清楚起见,我有一系列层(它是一个神经网络),比如 1..15。我创建了 var layerDom = {1..15} 每个层都有多个与之关联的对象,比如错误,所以我有

var errors: [layerDom] real;  // Just a number

我想要

var Ws: [layerDom] <matrixy thingy>;  // Weight matrices all of different shape.

从 Chapel 1.15 开始,没有一种优雅的方法来创建内部数组具有不同大小的数组。这是因为内部数组都共享相同的域,这意味着更改一个数组的域会更改所有数组。

为了达到预期的效果,您需要创建一个包含数组的记录/类的数组:

record Weight {
  var D : domain(2);
  var A : [D] real;
}

var layers = 4;
var weights : [1..layers] Weight;
for i in 1..layers {
  weights[i].D = {1..i, 1..i};
  weights[i].A = i;
}

for w in weights do writeln(w.A, "\n");

// 1.0
// 
// 2.0 2.0
// 2.0 2.0
// 
// 3.0 3.0 3.0
// 3.0 3.0 3.0
// 3.0 3.0 3.0
// 
// 4.0 4.0 4.0 4.0
// 4.0 4.0 4.0 4.0
// 4.0 4.0 4.0 4.0
// 4.0 4.0 4.0 4.0
// 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Chapel 中使用矩阵创建域 的相关文章

随机推荐

  • 在C中从键盘获取输入而不用“return”

    在 C Mac OS 中 如何在不按 return 的情况下从键盘获取输入 在带有终端的类 Unix 系统上 我认为 MacOS X 符合要求 那么您需要将终端设置为所谓的 cbreak 模式 重点是terminal保留数据直到按下 ret
  • 尽管导入了类,但未定义类

    我似乎遇到了一个非常令人困惑的错误 尽管导入了包含我的类的 py 文件 Python 仍然坚持认为该类实际上并不存在 testmodule py中的类定义 class Greeter def init self arg1 None self
  • 在我的 android studio 模拟器中元素相互重叠

    我是新来的Android Studio 当我创建应用程序时 所有元素都相互重叠 我不知道如何编辑这段代码 请给我详细的描述 布局编辑器和模拟器结果 布局代码
  • Spark 执行器上的对象缓存

    对于 Spark 专家来说 这是一个很好的问题 我正在处理数据map操作 RDD 在映射器函数中 我需要查找类的对象A用于处理 RDD 中的元素 由于这将在执行器上执行并创建类型的元素A 将被查找 恰好是一个昂贵的操作 我想在每个执行器上预
  • PHP:如何检查 URL 是 Youtube 还是 vimeo

    如何编写一个函数来检查提供的 URL 是 youtube 还是 vimeo 例如 我将这两个 URL 作为字符串存储在数据库中 http vimeo com 24456787 http www youtube com watch v rj1
  • 使用 groupby 和 Mean() 在 Pandas 中保留一个包含分类变量的列

    有没有办法在之后保留分类变量groupby and mean 例如 给定数据框df ratio Metadata A Metadata B treatment 0 54265 937500 B10 1 AB cmpd 01 11 10736
  • 如何在内容可编辑 iframe 内创建非内容可编辑 div?

    我需要将内容可编辑的 iframe 内的某些部分设置为不可编辑 我怎么做 下面的代码在 Chrome 中有效 但在 Firefox 中无效 一切都可以在 Firefox 中编辑 我需要复选框不可编辑 Editable text div di
  • Azure 中虚拟机和应用服务之间的 Vnet

    我不知道如何连接网络应用程序 应用服务 to a 虚拟机在蔚蓝中 我已从 Web 应用程序配置面板创建了 VNet 所有项目都是使用创建的资源管理型号 都在同一个订阅并且至少是Standard定价层 显然 Web 应用程序无法连接到 V2
  • 警告会话 0x0 服务器为空、意外错误、关闭套接字连接并尝试重新连接

    我有两个节点 每个节点上都安装了带有Mesos marathon和zookeeper的docker 这是我在主节点上的 docker compose 文件 version 3 7 services zookeeper image ubunt
  • SQL Server 锁解释

    下面是 SQL Server 2000 支持的锁列表 我对 意图 锁的实际含义有点困惑 我在网上查了一下 答案似乎有点神秘 为了进一步获得我的具体问题的答案 我希望将此问题用作 Wiki 了解每个锁的含义以及在什么情况下将获取该类型的锁 S
  • pandas.groupby 对象上尊重时间的移动平均值

    给定一个以下格式的 pandas 数据框 toy pd DataFrame id 1 2 3 1 2 3 1 2 3 date 2015 05 13 2015 05 13 2015 05 13 2016 02 12 2016 02 12 2
  • 在 JavaFX 上的按钮中加载 SVG 文件

    我在 Inkscape 中创建了一个 SVG 图像 我把它放在与我的班级相同的目录中 有没有办法加载该图像并将其转换为 SVG 路径 这背后的想法是获得该图像getClass getResource image svg toExternal
  • 如何在 Jetpack Compose 中创建垂直无限轮播?

    我正在尝试构建一个可滚动列 最好是 LazyColumn 它将在滚动到末尾后再次开始重新显示第一个项目 例如 看看这个闹钟 它将从 00 59 开始循环 然后再次从 0 开始平滑滚动 我尝试过一个普通的 LazyColumn 它会显示 58
  • 线程安全的向量和字符串容器?

    我之前发过一个问题 在嵌入式 Linux 平台上使用 std string 时出现段错误 https stackoverflow com questions 2412667 seg fault when using stdstring on
  • 获取所有Android版本中来电的电话号码

    我正在尝试获取来电的来电号码 我搜索并找到了这个在 Android 中检索来电的电话号码 https stackoverflow com questions 1853220 retrieve incoming calls phone num
  • 如何包装 OAuth2 异常?

    我们有一个 REST API 使用Spring OAuth2 用户通过身份验证后 所有 JSON 响应均采用以下格式 code 12345 data 但是身份验证失败的 JSON 响应与上述格式不相符 因为这是由 Spring 处理的 例如
  • get_class() 期望参数 1 为对象,给定为 null

    当我尝试在新的本地计算机上部署 Symfony 2 8 项目时 我在代码的多个位置遇到此错误 Warning get class expects parameter 1 to be object null given 在stackoverf
  • 如何清理(用随机字节覆盖)std::string 内部缓冲区?

    考虑一个场景 其中std string用于存储a secret 一旦它被消耗并且不再需要 最好清理它 即覆盖包含它的内存 从而隐藏它secret std string提供一个函数const char data 返回指向 C 11 起 连续内
  • 根据匹配的列标题名称开头组合 R 中的列

    我有一个看起来有点像下面的数据框 A1U sweet 实际上是真实数据帧中的第 19 列 C1U sweet 是真实数据帧中的第 39 列 有 20 个以 A 开头的列和 20 个以 C 开头的列 A1U sweet A2F dip A3U
  • 在 Chapel 中使用矩阵创建域

    我有一个域名D 我想用它来索引几个矩阵A 某种形式的东西 var dom domain 1 0 5 var mats dom