问题标签 [flux.jl]

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

machine-learning - DiffEqFlux 中的 FastChain 与 GPU

对于模型的 GPU 训练,我正在使用

相对

中央处理器训练

超过 1000 次迭代,Fastchain 比运行 GPU Tesla K40c 快几个数量级。这是预期的行为吗?否则,我在 GPU 上实现模型时会做错什么吗?GPU实现的MWE如下:

0 投票
2 回答
60 浏览

julia - 将 Flux 与结构一起使用:意外的通道维度

在结构中调用 Flux 函数时,我似乎得到了不同的行为(不同的输出维度),而不是直接将函数应用于张量:

直接申请:

通过结构:

为什么 2 个片段的输出通道尺寸不同?我对 Julia 中的结构缺少什么?谢谢!

0 投票
0 回答
185 浏览

julia - 在 Flux 中进行优化时出现标量 getindex 错误

我正在尝试logitbinarycrossentropy在 GPU 上的全卷积网络上使用 Flux 的函数进行优化:

其中损失定义为:

但是,我遇到了一个ERROR: LoadError: scalar getindex is disallowed错误。我已经验证我的模型运行正确(返回正确的输出等),并且损失函数能够计算一个值。我尝试将其重写logitbinarycrossentropy自定义损失函数,但它仍然失败,并出现相同的错误update!(opt, ps, gs)。我也尝试使用σwithbinarycrossentropy而不是logitbinarycrossentropy,并得到了同样的错误。

我正在使用 Julia 1.3.0、Flux 0.10.3、Zygote 0.4.6。

我推测这可能与我cat在模型定义中的使用有关,这可能吗?这大致是我定义模型的方式:

完整的堆栈跟踪:

谢谢!

0 投票
1 回答
233 浏览

deep-learning - Julia Flux 中的等效数据集

我想使用 Flux 来训练音频文件的深度学习模型。在 Flux 文档中,他们将整个数据数组(包括所有示例)传递给数据加载器,该加载器将为train!()函数提供批处理列表。关键是我的系统中没有足够的内存来一次加载所有音频文件。

在 PyTorch 中,dataloader将由一个dataset对象提供,该对象具有在方法上一次打开一个文件的逻辑__getitem__()

那么,在 Flux/Julia 中实现它的正确方法是什么,什么是 Torch 数据集等价物?

0 投票
0 回答
203 浏览

julia - 在 Flux 中创建自定义层时出现数组突变错误

我使用 Flux 库创建了一个神经网络。我的代码基于论文“神经重要性采样”。我定义了自定义层和自定义损失函数。每层返回两个输出。当我运行我的代码时,我收到此错误:

不支持变异数组…[6] LinearLayer at .\In[6]:13

这是我的代码:

上面的错误说明这部分代码有问题:

calculate_forward 函数是:

我能做些什么来解决它?

0 投票
0 回答
44 浏览

julia - 我在编译时遇到错误,在添加和使用 julia 包时显示无法打开文件

0 投票
1 回答
128 浏览

neural-network - Julia 网络表达式 Flux

学习 Julia 元编程以通过表达式自动构建 ANN。虽然一切都适用于推理,但后退阶段会引发错误:

LoadError:无法区分foreigncall表达式

下一个代码显示了问题出现的位置。虽然 eval(net(x)) 运行良好,但由于某种原因,它在梯度计算阶段引发了错误。

0 投票
1 回答
229 浏览

keras - Julia 的 Flux 中的 Keras W_constraint 和 W_regularizer 类似物

我正在尝试解析json 文件以在 JuliaKeras中创建模型( v1.1.0 和v0.10.4)。FluxKerasFlux

Dense层配置示例:

因此,我很清楚如何在Flux. 但是W_constraintW_regularizer呢?Flux我在'sDense层没有发现任何类似的东西。它存在吗?我应该自己实施吗?层的这些参数是否Dense甚至很重要,或者在创建模型时可以轻松跳过Flux而不会严重改变性能?

0 投票
2 回答
115 浏览

julia - Julia Flux:确定层的类型

我是 Julia 的新手,我无法确定Flux's 模型中图层的类型。出于示例的目的,假设我的模型只是一个神经元:

我想迭代我的Chain,并根据层的类型,做出不同的动作(具体来说,我想为Dense层添加正则化)。

我从 Python 来到 Julia,我的第一个猜测是将 layer 的类型与Dense. 与我的直觉相反,这给了我false

  1. 为什么这在 Julia 中不起作用?
  2. 让 Julia 发挥作用的正确方法是什么?当然,我可以检查给定层是否存在structin/ out/ sigmoidin case of Dense)的特定字段,但不能保证它不是具有类似字段的其他层。
0 投票
1 回答
153 浏览

julia - Julia Flux:根据提供的正则化系数编写正则化器

我正在编写一个将 Python Keras(v1.1.0) 模型转换为 JuliaFlux模型的脚本,并且我正在努力实现正则化(我已阅读https://fluxml.ai/Flux.jl/stable/models/regularisation/)作为一种方式了解朱莉娅。

所以,在Keras的 json 模型中,我有类似的东西:"W_regularizer": {"l2": 0.0010000000474974513, "name": "WeightRegularizer", "l1": 0.0}对于每Dense一层。我想使用这些系数在Flux模型中创建正则化。问题在于,Flux它直接添加到损失中,而不是被定义为层本身的属性。

为避免在此处发布太多代码,我已将其添加到 repo 中。这是一个采用 json 和 createa 的小脚本FluxChainhttps: //github.com/iegorval/Keras2Flux.jl/blob/master/Keras2Flux/src/Keras2Flux.jl

现在,我想使用预定义的/系数为每Dense一层创建一个惩罚。我试着这样做:l1l2

因此,我为每一层创建了一个惩罚函数Dense,然后将其总结为总惩罚。但是,它给了我这个错误: ERROR: LoadError: BoundsError: attempt to access 3-element Array{Any,1} at index [4]

我明白这意味着什么,但我真的不明白如何解决它。因此,似乎当我调用 时total_penalty(model),它使用index_regs== 4 (因此, 和 的值index_regsindex_modelfor 循环之后)。相反,我想使用他们的实际指数,同时将给定的惩罚推到惩罚列表中。

另一方面,如果我不是将其作为函数列表而是作为值列表,那也是不正确的,因为我将损失定义为 loss(x, y) = binarycrossentropy(model(x), y) + total_penalty(model):如果我只是将它用作值列表,那么我将有一个 static ,而在模型训练期间total_penalty每次都应该为每一层重新计算它。Dense

如果有 Julia 经验的人给我一些建议,我将不胜感激,因为我肯定无法理解它在 Julia 中的工作原理,特别是在Flux. 我将如何创建total_penalty在训练期间自动重新计算的?