当维度本身是变量时,我试图找出(在Julia中)当维度本身是变量时,如何提取数组的一部分。如果维度是已知的,那么提取数组的一部分是很简单的。例如,通过这样的操作,我可以沿着第3维提取一个部分:
A = rand(27,33,11)
A_portion = A[:,:,3:7]
是否有一种紧凑/有效的方法来提取沿可变维数的数组的一部分?比如,像这样的东西?
A = rand(27,33,11)
dim = 3 ## dimension along which to grab a portion of the array
first_element = 3 ## first element o
我有一个我正在使用的resnet模型。我最初使用成批的图像训练模型。现在它已经训练好了,我想对一张图像(224x224,3个颜色通道)进行推断。但是,当我通过model(imgs[:, :, :, 2])将图像传递给我的模型时,我得到: DimensionMismatch("Rank of x and w must match! (3 vs. 4)")
Stacktrace:
[1] DenseConvDims(x::Array{Float32, 3}, w::Array{Float32, 4}; kwargs::Base.Iterators.Pairs{Symbol,
我对Julia编程语言非常陌生。我已经尝试过安装包,但到目前为止没有一次成功。 例如,我运行了以下命令: using Pkg
Pkg.add("JuMP") 我最终得到了这个错误: The following package names could not be resolved:
* JuMP (not found in project, manifest or registry) 对于我尝试安装的任何包,都会发生这种情况。我也尝试输入] add JuMP,但同样不起作用。以下是所有错误详细信息的屏幕截图。 ? 编辑:当我运行Pkg.Status()时,我得到 S
如何优化跳转中包含目标函数数组的函数?
我在跳转中有以下约束优化问题:
m = Model(optimizer_with_attributes(Mosek.Optimizer, "QUIET" => false, "INTPNT_CO_TOL_DFEAS" => 1e-7))
N = 2
function Q_r(i::Number, l::Number, r::Number, tau::Float64)
if i >= r && l >= r
return 2 * fac1(r, i, l) *
为了减小变量的大小,我希望用JuMP定义一个CartesianIndex模型。
我尝试了以下代码,但在使用变量时一直遇到处理CartesianIndex的问题:
using JuMP, Cbc, IterTools
Random.seed!(3)
N = 10
cost = rand(1:4, N, N)
# reducing size using an index
idx = findall(cost .< 2)
# size reduce from 100 to 22 variables
model = Model(with_optimizer(Cbc.Optimizer));
免责声明:我知道以下是非常糟糕的做法。我只是需要一个快速修复调试的目的。
我正在尝试运行一个朱莉娅包,它是using,JuMP.jl和LightXML.jl。
我得到以下错误:
WARNING: both JuMP and LightXML export "name"; uses of it in module JEMSS must be qualified
首先添加LightXML,所以我想复制一个name,然后让JuMP覆盖。
这样做的语法是什么?
name函数包括:
name(::LightXML.XMLElement)
name(::LightXML.XMLNode)
我对数组的不同类型感到困惑。考虑这两个例子
a = Array{Float64}[]
push!(a,[1, 2])
push!(a,[3, 4])
push!(a,[1 2; 3 4])
b = Array[[1.0, 2.0], [3.0,4.0], [1.0 2.0; 3.0 4.0]]
我不知道a和b有什么不同。假设我打算对a或b中的每个元素运行一个for循环,并将每个元素乘以2。
for i in 1:3 a[i] = a[i]*2 end
for i in 1:3 b[i] = b[i]*2 end
我分别对两行的运行时间进行计时,但它们的运行速度是相同的。a和b是一样的吗?如
type ExtendedJumpArray{T,T2} <: AbstractArray{Float64,1}
u::T
jump_u::T2
end
Base.length(A::ExtendedJumpArray) = length(A.u)
Base.size(A::ExtendedJumpArray) = (length(A),)
function Base.getindex(A::ExtendedJumpArray,i::Int)
i <= length(A.u) ? A.u[i] : A.jump_u[i-length(A.u)]
end
functio
我在朱莉娅有一个二维颜色数组
using Images
white = RGB{Float32}(1, 1, 1)
green = RGB{Float32}(0.1, 1, 0.1)
blue = RGB{Float32}(0, 0.1, 1)
A = [white white;
green blue;
blue blue]
我想把每一个RGB颜色转换成一个更高维度的Array{Float32, 3}。这就是我试过的:
B = map(A) do a
[a.r, a.g, a.b]
end
size(B) == (3, 2, 3) # (rows, cols,
我创建这个简单的代码作为演示: using GLPK
using JuMP
m = Model(GLPK.Optimizer)
@variable(m, y[i=1:100], Bin)
@objective(m, Min, sum(y))
@constraint(m, [j=5:50], sum([y[i] for i in j:j+10]) >= 5)
optimize!(m) 请注意,这个整数程序并不代表任何东西,它只是一个例子。前面的代码没有输出任何东西,而我记得使用Gurobi甚至GLPK和Julia JuMP来输出关于它在当前求解过程中所处位置的数据。已经处理了多少个节点,
我在Julia中使用1.4.1版本,并希望创建一个优化模型。我就是这样做的:
using JuMP
using Cbc
model = Model()
set_optimizer(model, Cbc.Optimizer)
我得到了一个错误:"UndefVarError: set_optimizer未在顶层范围中定义为..。“所以我试着:
using JuMP
using Cbc
model = Model(Cbc.Optimizer)
我得到一个错误:“.juliapro\JuliaPro_v1.4.1-1\packages\JuMP\I7whV\src\JuMP.jl:168
我正在尝试学习来自Python的朱莉娅,我在上偶然发现了一段有趣的代码。用户在创建包含函数的元组方面做了一个很好的技巧,因为它们是Julia中的一流对象。以此为基础我想尝试一些东西。
假设我有一个列表:
my_list = zip(0:3, ["wink", "double blink", "close your eyes", "jump"]) |> collect
我想要创建一个由2元素元组组成的列表,其中第二个元素是一个函数:
codes = [(i, x -> push!(x,j)) for (i,j) in m
我正在尝试编写一个宏来调用带有关键字参数的函数(用于JuMP、NLexpressions和映射。这些函数只是用于访问数据库的函数。因此它们不表示数学运算)。
最小示例:
function foo1(; int::a=1)
a
end
function foo2(; int::a=1, int::b=2)
b
end
macro callfunc(f, keywordargs)
#function should be called here using symbol
#return values of f should be returned by macro
下面是一个简单的代码示例:
Pkg.add("Graphs")
using Graphs
gd = simple_graph(20, is_directed=true) # directed graph with 20 nodes
nodeTo = 2
for nodeFrom in vertices(gd) # add some edges...
if(nodeTo != 20)
add_edge!(gd, nodeFrom, nodeTo)
nodeTo +=1
end
end
for i in edges(gd) # Pri
令人惊讶的是,互联网上完全没有这个简单的问题(或类似的问题)。或者我只是很不擅长搜索。无论如何,我只想将for循环生成的值存储在数组中并打印该数组。就这么简单。 在所有其他语言Matlab,R,Python,Java等上,这是非常简单的。但在朱莉娅身上,我似乎遗漏了一些东西。 using JuMP
# t = int64[] has also been tested
t = 0
for i in 1:5
vector[i]
println[vector]
end 我得到了错误 ERROR: LoadError: BoundsError 我遗漏了什么?