朱莉娅-如何为FluxML mlp定义图像数组?

时间:2019-06-29 08:33:16

标签: julia

我希望重复使用此代码:

https://github.com/FluxML/model-zoo/blob/master/vision/mnist/mlp.jl

但带有我自己的图像集。 我认为我需要定义一个对象,例如Array {Array {Gray {Normed {UInt8,8}},2},1}类型的imgs

如何初始化图像数组以获得以下类型的内容:

Array{Array{Gray{Normed{UInt8,8}},2},1}

我尝试过,但是失败了:

x = Array{Array{ColorTypes.Gray{FixedPointNumbers.Normed{UInt8,8}},2}}(10)
ERROR: MethodError: no method matching Array{Array{Gray{Normed{UInt8,8}},2},N} where N(::Int64)
Closest candidates are:
  Array{Array{Gray{Normed{UInt8,8}},2},N} where N(::UndefInitializer, ::Int64) where T at boot.jl:416
  Array{Array{Gray{Normed{UInt8,8}},2},N} where N(::UndefInitializer, ::Int64, ::Int64) where T at boot.jl:417
  Array{Array{Gray{Normed{UInt8,8}},2},N} where N(::UndefInitializer, ::Int64, ::Int64, ::Int64) where T at boot.jl:418
  ...
Stacktrace:
 [1] top-level scope at none:0

1 个答案:

答案 0 :(得分:1)

要创建一个空载体,请使用:

Array{Array{Gray{Normed{UInt8,8}},2},1}()

然后可以使用push!函数向其中添加图像。另外,您也可以写成这样:

Vector{Matrix{Gray{Normed{UInt8,8}}}}()

这更容易阅读。

或者您可以写:

Array{Array{Gray{Normed{UInt8,8}},2},1}(undef, 10)

创建带有10个条目的未初始化向量。然后,您可以使用常规索引设置语法对其进行初始化。同样,您也可以将其编写为:

Vector{Matrix{Gray{Normed{UInt8,8}}}}(undef, 10)