2017-10-11 30 views
0

J'ai passé toute la journée à essayer de comprendre comment utiliser mxnet GPU dans R sur Windows. Le package installe bien, mais sur la bibliothèque (mxnet) je reçois une erreur:Impossible d'exécuter mxnet dans R sur Windows

Erreur: package ou charge espace de noms a échoué pour 'mxnet': .onLoad a échoué dans loadNamespace() pour 'mxnet', les détails: appel: inDL (x, as.logical (local), as.logical (now), ...) Erreur : Impossible de charger l'objet partagé 'C: /Users/Po/Documents/R/win-library/3.4/mxnet/ libs/x64/libmxnet.dll ': Échec de LoadLibrary: le module spécifié est introuvable. Vraiment été pris pour une balade avec tous les sujets «d'aide». Cela semble être une question commune mais pas une solution largement applicable. J'ai téléchargé et mis à jour: CUDA, CUDAnn, pilotes NVIDIA, OpenBLAS, cmake, opencv, MS studio visuel, git, mlbench, mingw, MS communauté visuelle cpp .... la liste continue. Certaines solutions disent que construire et compiler est un travail, mais franchement la construction et la compilation sont tellement hors de portée que j'ai dû télécharger une demi-douzaine de programmes juste pour être laissé avec des instructions "Utiliser CMake pour créer une solution Visual Studio dans ./build. " Qu'est ce que ça veut dire.

J'ai vérifié le répertoire et je suis sûr que libmxnet.dll existe. J'ai l'impression de manquer quelque chose d'évident.

Répondre

1

Je vais vous aider à résoudre ce problème.

I have checked the directory and am sure libmxnet.dll exists. I feel like I am missing something obvious.

si libmxnet.dll existe, et pourtant nous obtenons l'erreur du module manquant, cela signifie une ou plusieurs DLL dont dépend libmxnet.dll manque.

Pouvez-vous s'il vous plaît télécharger Process Monitor de "https://live.sysinternals.com/Procmon.exe" et capturer l'activité du système de fichiers.

Les instructions sont

  1. Télécharger "https://live.sysinternals.com/Procmon.exe"
  2. Start "Procmon.exe"
  3. Cliquez Ctrl +L apporter filtre UI
  4. Choisissez "chemin", " se termine par "," .dll "puis" inclure "filtre de " Afficher les entrées correspondant à ces conditions "
  5. Cliquez sur OK. Nous avons configuré Procmon pour surveiller l'activité de la DLL
  6. Maintenant, essayez de reproduire le problème qui conduit à l'erreur du module manquant
  7. À partir de Process Monitor, choisissez Fichier | Enregistrer l'option (ou appuyez sur Ctrl + S)
  8. Assurez-vous que « le format du moniteur de processus natif (PML) » est choisi
  9. événements affichés à l'aide Veiller à ce filtre en cours est choisi
    Générez le fichier PML.
  10. Courrier le fichier PML pour moi à [email protected]
+0

@ Thomas Fritsch, merci beaucoup pour le formatage de mon article ci-dessus. Je vous en suis reconnaissant. – Eftiquar

+0

Bonjour, voulez-vous partager les logs du moniteur de processus pour analyser cela? Je serai heureux d'analyser cela pour vous. – Eftiquar

0

Pour construire et installer MXNet vous, vous devez les dépendances suivantes.Installez les dépendances requises:

  1. Si [Microsoft Visual Studio 2017 (https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) n'est pas déjà installé, téléchargez-le et installez-le. Vous pouvez télécharger et installer l'édition gratuite de la communauté. Téléchargez et installez CMake GUI version s'il n'est pas déjà installé.
  2. Téléchargez et installez OpenCV.
  3. Décompressez le paquet OpenCV.
  4. Définissez la variable d'environnement "OpenCV_DIR" sur la valeur "Répertoire de construction OpenCV". Si la bibliothèque Intel Math Kernel Library (MKL) n'est pas installée, téléchargez et installez le OpenBlas.
  5. Définissez la variable d'environnement "OpenBLAS_HOME" pour qu'elle pointe vers le répertoire "OpenBLAS" qui contient les répertoires "include" et "lib". Typiquement, vous pouvez trouver le répertoire dans "C: \ Program files (x86) \ OpenBLAS \". Téléchargez et installez CuDNN. Pour accéder au lien de téléchargement, enregistrez-vous en tant qu'utilisateur de la communauté NVIDIA.

Après avoir installé toutes les dépendances nécessaires, construire le code source MXNet:

  1. Télécharger le code source MXNet de GitHub.
  2. outils Open natif invite de commande pour Visual Studio 2017 (choisissez x64 ou x86 natif comme requis)
  3. Démarrer CMake GUI outil installé précédemment, à partir de cette invite de commande
  4. Dans l'interface utilisateur de l'outil CMake, bouton « Parcourir Source » et accédez au dossier où la source MXNet est téléchargée. Par exemple - "/ GitHub/incubateur mxnet"
  5. Créez un dossier sous "/ GitHub/incubateur mxnet", dit releasex64
  6. Cliquez sur "Parcourir Créer .." et choisissez le dossier créé ci-dessus
  7. Cliquez sur « Configurer « bouton, une invite de dialogue pour choisir générateur
  8. Choisissez générateur approprié, par exemple Visual studio 2017 Win64, si la construction pour x64
  9. Conserver « les compilateurs natifs par défaut » option
  10. Cliquez sur Terminer
  11. Cliquez sur » Ouvrir Projet "pour ouvrir le ge projet dans IDE Visual est également exonéré Studio
  12. Choisissez « ALL_BUILD » et construire la configuration que vous voulez construire
  13. Trouver libmxnet.dll dans le dossier créé à l'étape 5 ci-dessus par exemple « \ GitHub \ incubateur mxnet \ releasex64 \ Debug \ libmxnet.dll "