나 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, Any, NTuple{4, Symbol}, NamedTuple{(:stride, :padding, :dilation, :groups), Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}, Tuple{Int64, Int64}, Int64}}})
@ NNlib ~/.julia/packages/NNlib/P9BhZ/src/dim_helpers/DenseConvDims.jl:58
[2] (::Conv{2, 2, typeof(identity), Array{Float32, 4}, Vector{Float32}})(x::Array{Float32, 3})
@ Flux ~/.julia/packages/Flux/ZnXxS/src/layers/conv.jl:162
...
...
에 대한 참조 imgs[:, :, :, 2]
하면 다음과 같습니다.
224×224×3 Array{Float32, 3}:
[:, :, 1] =
0.4 0.419608 0.482353 0.490196 … 0.623529 0.611765 0.627451
0.423529 0.478431 0.513726 0.486275 0.65098 0.65098 0.65098
0.419608 0.47451 0.541176 0.54902 0.682353 0.670588 0.639216
0.52549 0.529412 0.568627 0.564706 0.588235 0.592157 0.572549
0.556863 0.541176 0.513726 0.505882 0.603922 0.635294 0.654902
0.486275 0.490196 0.521569 0.537255 … 0.635294 0.654902 0.65098
0.529412 0.513726 0.533333 0.537255 0.603922 0.596078 0.596078
0.521569 0.52549 0.505882 0.513726 0.580392 0.576471 0.572549
...
...
어떤 아이디어가 누락되었나? 모델 필요한은 같은 치수 중추는 훈련을 받았는가? 이 있을 확인하는 방법이 확인 내가 주는 올바른 치수를 입력?
업데이트:는 것을 깨달았을 통과해야에서의 수는 이미지(이 경우에는 것),그래서 그렇게 했어:
img1 = cat(imgs[:, :, :, 1]; dims = ndims(imgs[:, :, :, 1]) + 1 )
img1
model(img1)
는 예상대로 작동합니다. 나는 이 질문을 열면 사람이 답변을 원래의 질문에 대해 확인 입력이 어두워집니다.