LinuxのRにmxnetをインストールします(すべての落とし穴を踏んで泣きます)

mxnetライブラリをインストールするだけの場合は、それを参照することもできます

これまでのところ、私は最も嫌な、嫌なソフトウェアパッケージを見てきましたが、どれも、成功したインストールの最初の写真ですこれを見て泣いた、本当に

最初に話しましょう。プロセスを直接見たい場合は、断ってください。ありがとうございます。

公式Webサイトをクリックして、Linuxではソースコードを介してのみコンパイルできることを確認します。ソースからのビルドを熱心に読んだ後、Rパッケージを生成するかどうかを確認する準備が整います。https://mxnet.apache.org/ get_started / build_from_source#install-the- mxnet-package-for-r、よろしくお願いします。リンクにジャンプはありません。それでは、最初のステップを実行します。公式ウェブサイトからapache-mxnet-src-1.7.0-incubating.tar.gzをダウンロードした後

$ cd apache-mxnet-src-1.7.0-incubating
$ mkdir _build
$ cmake ..

操作は虎のように激しく、このエラーが報告されるかどうかを確認するのは恐ろしいです。
さて、他のチュートリアルを探してください。
最後に、まだ中国語のgithubでチュートリアルを見つけましたhttps://github.com/devbib/ mxnet / blob / master / docs / zh / get_started / amazonlinux_setup_zh.md
は、-j 24を直接作成することを期待していなかったので、公式Webサイトに何が書かれていますか?

まさか、インストールを続けることしかできません

$ cp make/config.mk .
$ make -j 4

Kakaが構成を変更した後、Makeが非常に多くのファイルが欠落しているとプロンプトを表示したのはなぜですか?申し訳ありませんが、公式ウェブサイトに小さな線があります

$ git clone --recursive https://github.com/apache/incubator-mxnet mxnet

これを直接書いてみませんか?圧縮パッケージをダウンロードするようにみんなに頼むのは本当に理解できなかったので、中のすべてのファイルを渡してみませんか?私は本当に仏陀に恋をしました。

ここにあると思いますか?ビッグガイのチュートリアルをもう一度見てください

$ cd R-package
$ Rscript -e "library(devtools); library(methods); options(repos=c(CRAN='https://cran.rstudio.com')); install_deps(dependencies = TRUE)"
$ cd ..
$ make rpkg

提供しているものを確認しましたか?Rパッケージフォルダはありますか?最も苛立たしいのは、Makefileにrpkgルールがないことです。私は本当にそれに夢中になっています。

次の詳細なチュートリアルT ... Tを涙ながらにインストールする必要があります

ダウンロード

最初の大きな落とし穴はダウンロードすることです。以下の手順に従ってください。

$ git clone https://github.com/apache/incubator-mxnet.git--recursive 

最初のgitは--recursiveを追加する必要があります。そうしないと、多くのパッケージが失われます

作成者がこれらのフォルダーを.gitignoreに追加したために、一部のフォルダーが欠落している
場合があります。Chromeブラウザーを使用している場合は、github用のプラグインgitZipを追加し、ダブルクリックしてダウンロードできます。

他のブラウザはそれ自体でいくつかのソリューションをBaiduすることができます

このようにして、incubator-mxnetのコンテンツが完成し、R-packageがRにインストールされた最後のファイルになります。

libmxnet.soをコンパイルします

mxnetをコンパイルするにはLAPACKが必要です。自分でインストールしてください。以前に書いた記事を参照できます。

最初にlibmxnet.soライブラリファイルをコンパイルし、最後にRにインストールします

$ cd  incubator-mxnet
$ cp ./make/config.mk .
$ vim config.mk
# 在 USE_LAPACK 中添加上你的 lapcak 文件夹
-L/path/to/lapack-3.8.0
$ vim Makefile
# 找到 ifeq ($(USE_LAPACK), 1),在下方的 CFLAGS 中添加上 CBLAS 的 include 文件夹
CFLAGS += -DMXNET_USE_LAPACK -I/path/to/lapack-3.8.0/CBLAS/include
# 随后在 endif 后添加一句
LDFLAGS += -lgfortran
# 在最下方添加上编译 rpkg 的方法,在 1.6.x 版本中可以看到, 1.7.0 中不知道为什么作者将其移除了(黑人问号脸.jpg)
rpkg:
        mkdir -p R-package/inst/libs
        cp src/io/image_recordio.h R-package/src/image_recordio.h
        cp -rf lib/libmxnet.so R-package/inst/libs
        if [ -e "lib/libdnnl.so.1" ]; then \
                cp -rf lib/libdnnl.so.1 R-package/inst/libs; \
        fi
        if [ -e "lib/libtvm_runtime.so" ]; then \
                cp -rf lib/libtvm_runtime.so R-package/inst/libs; \
        fi
        mkdir -p R-package/inst/include
        cp -rl include/* R-package/inst/include
        Rscript -e "if(!require(devtools)){install.packages('devtools', repo = 'https://cloud.r-project.org/')}"
        Rscript -e "if(!require(roxygen2)||packageVersion('roxygen2') < '6.1.1'){install.packages('roxygen2', repo = 'https://cloud.r-project.org/')}"
        Rscript -e "library(devtools); library(methods); options(repos=c(CRAN='https://cloud.r-project.org/')); install_deps(pkg='R-package', dependencies = TRUE)"
        cp R-package/dummy.NAMESPACE R-package/NAMESPACE
        echo "import(Rcpp)" >> R-package/NAMESPACE
        R CMD INSTALL R-package
        Rscript -e "require(mxnet); mxnet:::mxnet.export('R-package'); warnings()"
        Rscript -e "devtools::document('R-package');warnings()"
        R CMD INSTALL R-package

cblasライブラリと-lgfortranを追加するか、エラーを報告した後に再コンパイルする必要があります

gpu、cudaアクセラレーションのサポートなど、config.mkファイルを自由に変更することもできます。

mxnetライブラリのコンパイルには時間がかかります。必ずこの2箇所を追加してください。コンパイルが完了したら、最終的なルールを追加できます。

$ make -j 8
# 亲测,如果满核编译会报错,需要手动停止后继续编译,我的处理器是 24 核心,使用 -j 8 一般不会报错
$ ll lib/libmxnet.so

コンパイルが完了したら、libmxnet.soファイルが生成されているかどうかを確認し、手動で実行する必要のある操作がいくつかあります。

$ cd include 
$ rm dlpack  dmlc mshadow nnvm
$ cd mkldnn
$ rm dnnl.h  dnnl.hpp  dnnl_types.h mkldnn_dnnl_mangling.h  mkldnn.h  mkldnn.hpp  mkldnn_types.h  mkldnn_version.h

すべてのソフトリンクを削除してから、フルパスリンクを再利用します。
元のリンクは相対パスで書き込まれ、後でcp操作を使用すると赤に変わり、使用できなくなります。

$ Rscript -e "install.packages('devtools', repo = 'https://cran.rstudio.com')"
$ cd R-package
$ Rscript -e "library(devtools); library(methods); options(repos=c(CRAN='https://cran.rstudio.com')); install_deps(dependencies = TRUE)"
$ cd ..
$ make rpkg

エラーが報告された場合... MXSetProfilerConfig(int、const char * const、const char * const)など、次の操作を実行します

$ vim R-package/src/mxnet.cc
# 修改第27行
MX_CALL(0);

Rscript -e "library(devtools); library(methods);を実行すると、tiff、imager、その他のパッケージをインストールするように求められます。
以下は、発生したエラーです。発生しない場合はスキップできます。

  1. R tiffをインストールすると、tiff.hがないというプロンプトが表示されます。最初は、なぜ独自のヘッダーファイルがないのか疑問に思いましたが、tiffという別のライブラリがあることがわかりました(一般の人は... )
    解決策:オンラインにするtiff_0.1-6.tar.gzをダウンロードしてインストールし、構成後に作成します。

    conda仮想環境を使用している場合は、インストールされているlibtiff.soを/ path / to / conda / libに移動し、includeフォルダー内のファイルを/ path / to / conda / includeに移動する必要があります。

  2. R tiffをインストールすると、-ljpeg
    ソリューションを見つけるように求められます。installlibjepg-turbo、

    $ git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
    $ cd libjpeg-turbo
    $ mkdir _build && cd _build
    $ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install -G"Unix Makefiles" -DANDROID_ABI=x86_64
    
    

    考えられるエラー:

    jccolext-avx2.asm:290:エラー:パーサー:命令が必要です
    jccolext-avx2.asm:292:エラー:シンボル `vperm2i128 'が再定義されました

    理由:-G" Unix Makefiles "-DANDROID_ABI = x86_64
    解決策:追加するだけですcmakeでそれ

  3. R yamlのインストール中にエラーが発生しました:「yaml_emitter_t {aka structyaml_emitter_s}」に「indent_mapping_sequence」という名前のメンバーがありません
    理由:古いバージョンのyamlがインストールされています。
    解決策:古いバージョンをアンインストールして再インストールします。 conda環境を処理する必要があります。記事を参照してください

  4. Rイメージャをインストールすると、X11
    ソリューションがないことを示すプロンプトが表示されます。condaを介してインストールできます。condainstall-c conda-forge xorg-libx11

  5. インストールが完了した後、X11が見つからないが必須
    であるというプロンプトが表示され、構成が中止されることがあります。config.logを確認した後、プロンプトが表示されます... XauGetBestAuthByAddr ...
    理由:システムのlibXau.so.6のバージョンが低すぎます。 。
    解決策:conda install -c conda-forge xorg -libxau

  6. 最後に、make rpkgの後にエラーが発生しました。opencv2/ opencv.hpp
    ソリューションはありません。condaを使用してopencvを直接インストールし、conda install -c conda-forge opencv

終わった、花を振りかける

基本的にすべてのピットが踏まれています。2日かかりました。簡単ではありません。QAQ
他に問題がある場合は、メッセージまたはプライベートメッセージを残してください。基本的には見たら返信します。

おすすめ

転載: blog.csdn.net/qq_32115939/article/details/108829524