У меня возникли проблемы с установкой пакета "M XNet .jl" в julia.
1) Сначала я попытался набрать:
(v1.2) pkg> add MXNet
, и я получил это:
(v1.2) pkg> add MXNet
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Updating `~/.julia/environments/v1.2/Project.toml`
[no changes]
Updating `~/.julia/environments/v1.2/Manifest.toml`
[no changes]
В этот момент ничего плохого не происходило. Не было выдано сообщений об ошибках. Ницца. Теперь я вернулся к Julia REPL и попытался использовать модуль, для которого я написал:
julia> using MXNet
[ Info: Precompiling MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0]
ERROR: LoadError: LoadError: IOError: open: permission denied (EACCES)
Stacktrace:
[1] uv_error at ./libuv.jl:90 [inlined]
[2] open(::String, ::UInt16, ::UInt16) at ./filesystem.jl:81
[3] touch(::String) at ./file.jl:404
[4] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:60
[5] include at ./boot.jl:328 [inlined]
[6] include_relative(::Module, ::String) at ./loading.jl:1094
[7] include at ./Base.jl:31 [inlined]
[8] include(::String) at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:25
[9] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
[10] include at ./boot.jl:328 [inlined]
[11] include_relative(::Module, ::String) at ./loading.jl:1094
[12] include(::Module, ::String) at ./Base.jl:31
[13] top-level scope at none:2
[14] eval at ./boot.jl:330 [inlined]
[15] eval(::Expr) at ./client.jl:432
[16] top-level scope at ./none:3
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:57
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
ERROR: Failed to precompile MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0] to /home/gbrunini/.julia/compiled/v1.2/MXNet/Sc0jU.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
[3] _require(::Base.PkgId) at ./loading.jl:1013
[4] require(::Base.PkgId) at ./loading.jl:911
[5] require(::Module, ::Symbol) at ./loading.jl:906
и все эти сообщения об ошибках, которые были выброшены. Зная мои ограничения в отношении всех этих ошибок, я пошел ко второй попытке, которая заключалась в следующем ...
2) Мой второй подход заключался в использовании грубой силы, поэтому я скопировал и вставил все github scr папка для пакета julia M XNet .jl в заданную папку на моем личном рабочем столе. Это было сделано подпрограммой подпрограммой, папка за папкой, пока я не скопировал каждый файл и папку. Поэтому справедливо сказать, что папка scr в этой ссылке: https://github.com/apache/incubator-mxnet/tree/master/julia/src теперь выглядит точно так же, как моя.
Теперь я подошел к своей папке и продолжил, как если бы «M XNet .jl» была любой другой обычной функцией, которую я использовал в прошлом, поэтому я набираю (On julia REPL):
julia> include("MXNet.jl")
ERROR: LoadError: LoadError: Cannot find or load libmxnet.so. Please see the document on how to build it.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] top-level scope at /home/gbrunini/Desktop/TRABAJOS/MTI/MTI_Neural_network/MTI_ejemplo_simple_3/base.jl:55
[3] include at ./boot.jl:328 [inlined]
[4] include_relative(::Module, ::String) at ./loading.jl:1094
[5] include at ./Base.jl:31 [inlined]
[6] include(::String) at /home/gbrunini/Desktop/TRABAJOS/MTI/MTI_Neural_network/MTI_ejemplo_simple_3/MXNet.jl:25
[7] top-level scope at /home/gbrunini/Desktop/TRABAJOS/MTI/MTI_Neural_network/MTI_ejemplo_simple_3/MXNet.jl:150
[8] include at ./boot.jl:328 [inlined]
[9] include_relative(::Module, ::String) at ./loading.jl:1094
[10] include(::Module, ::String) at ./Base.jl:31
[11] include(::String) at ./client.jl:431
[12] top-level scope at REPL[1]:1
in expression starting at /home/gbrunini/Desktop/TRABAJOS/MTI/MTI_Neural_network/MTI_ejemplo_simple_3/base.jl:51
in expression starting at /home/gbrunini/Desktop/TRABAJOS/MTI/MTI_Neural_network/MTI_ejemplo_simple_3/MXNet.jl:150
Который вернул все это сообщение об ошибке.
Я предполагаю, что что-то не так с этим libm xnet .so (я не знаю, что это такое ...), и я испытываю желание следовать шаги 1-3 в этой документации (руководство по установке M XNet) , но я не хочу все испортить, поскольку я действительно не знаю, что делает любая из следующих команд:
sudo apt-get update
sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake
git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet
cd mxnet
cp config/linux.cmake config.cmake # or config/linux_gpu.cmake for build with CUDA
rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .
и что из перечисленного Джулия делает:
mkdir julia-depot
export JULIA_DEPOT_PATH=$HOME/julia/julia-depot
а) Что такое депо? б) Что за переменная окружения (я посмотрел онлайн, и это меня смущает ...)
export MXNET_HOME=$HOME/incubator-mxnet
export LD_LIBRARY_PATH=$HOME/incubator-mxnet/lib:$LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so:$LD_PRELOAD
export PATH=$HOME/bin:$HOME/.local/bin:$HOME/julia/julia-1.0.3/bin:$PATH
export JULIA_DEPOT_PATH=$HOME/julia/julia-depot
export MXNET_HOME=$HOME/incubator-mxnet
export LD_LIBRARY_PATH=$HOME/incubator-mxnet/lib:$LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so:$LD_PRELOAD
julia --color=yes --project=./ -e \
'using Pkg; \
Pkg.develop(PackageSpec(name="MXNet", path = joinpath(ENV["MXNET_HOME"], "julia")))'
Я действительно просто хочу установить M XNet .jl и использовать его. Если я понимаю все остальное как побочный эффект, тем лучше, но я согласен с тем, что все правильно установлено, поэтому для краткости:
- В чем проблема? *
- Исправить ли это, просто «скопировав и вставив» инструкции из шагов документации?
- Если нет, то как мне установить M XNet .jl?,
- Я путаю GPU с установкой CPU (мой выбор)? что меняется между обоими? Я не думаю, что это имеет какое-либо отношение к тому, что здесь происходит, но ....
Заранее большое спасибо, я надеюсь, что вы все делаете хорошо.
julia> versioninfo()
Julia Version 1.2.0
Commit c6da87ff4b (2019-08-20 00:03 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, sandybridge)
РЕДАКТИРОВАТЬ:
После @Przemyslaw я пошел и установил последнюю версию Джулии, julia1.4. Я прыгал, что делая это, разрешения для записи в .julia
будут исправлены. Однако проблема остается. Я все еще получаю следующие сообщения:
(@v1.4) pkg> add MXNet
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Updating `~/.julia/environments/v1.4/Project.toml`
[a7949054] + MXNet v1.5.0
Updating `~/.julia/environments/v1.4/Manifest.toml`
[9e28174c] + BinDeps v1.0.1
[682c06a0] + JSON v0.21.0
[a7949054] + MXNet v1.5.0
[69de0a69] + Parsers v1.0.2
[30578b45] + URIParser v0.4.1
[8ba89e20] + Distributed
[a63ad114] + Mmap
[8dfed614] + Test
julia> using MXNet
[ Info: Precompiling MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0]
ERROR: LoadError: LoadError: IOError: open: permission denied (EACCES)
Stacktrace:
[1] uv_error at ./libuv.jl:97 [inlined]
[2] open(::String, ::UInt16, ::UInt16) at ./filesystem.jl:87
[3] touch(::String) at ./file.jl:422
[4] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:60
[5] include(::Module, ::String) at ./Base.jl:377
[6] include(::String) at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:25
[7] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
[8] include(::Module, ::String) at ./Base.jl:377
[9] top-level scope at none:2
[10] eval at ./boot.jl:331 [inlined]
[11] eval(::Expr) at ./client.jl:449
[12] top-level scope at ./none:3
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:57
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
ERROR: Failed to precompile MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0] to /home/gbrunini/.julia/compiled/v1.4/MXNet/Sc0jU_ATtl5.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
julia> versioninfo()
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, sandybridge)
Итак,
- Почему установка новой julia не решает проблему через
.julia
? - Все остальные Пакеты, которые я установил, работают нормально, является
MXNet.jl
единственным пакетом, который должен записывать поверх .julia
? - Проблема, похоже, связана со строками:
if isempty(MXNET_LIB)
# touch this file, so that after the user properly build libmxnet, the precompiled
# MXNet.ji will be re-compiled to get MXNET_LIB properly.
touch(@__FILE__)
error("Cannot find or load libmxnet.$(Libdl.dlext). " *
"Please see the document on how to build it.")
else
include_dependency(MXNET_LIB)
end
в base.jl
подпрограмма M XNet .jl. Есть идеи, что это значит?