[PYTHON] L'histoire d'essayer deep3d et de perdre

introduction

Cet article est l'article du troisième jour du Calendrier de l'Avent Python 2016. C'est une histoire vaincue, donc la fin se termine par une erreur.


Qu'est-ce que deep3d

Une bibliothèque qui utilise DeepLearning pour convertir des images pour la 3D.

teaser.png


C'est

demo.jpg


Ce sera comme ça!

demo.gif


Vos rêves se répandront (les gens'∀`)


Explication de la procédure simple à partir d'ici


Préparez une machine qui peut utiliser le GPU

--Créez une instance AWS g2.2xlarge ou g2.8xlarge EC2 --Il est nécessaire de demander à l'avance l'annulation des restrictions d'utilisation ―― Comme il utilise beaucoup de stockage, le niveau gratuit utilise les 30 Go «Bien sûr, ce n'est pas du tout autre qu'AWS.


Installer la bibliothèque

--CUDA (environnement de développement intégré GPU) --cuDNN (bibliothèque pour exécuter un réseau neuronal sur GPU)


référence


Préparer python

--Installez pyenv


Préparez l'image

demo2.png


Exécuter comme un échantillon

«Est-il bon de faire référence à cela? - deep3d.ipynb --Remplacer l'image à l'avance --Si vous ne l'exécutez pas dans le répertoire deep3d que vous avez cloné git, vous obtiendrez une erreur de lecture de deep3d-symbol.json.


Exécuter comme un échantillon

import mxnet as mx
import numpy as np
import os
import urllib
import cv2
from PIL import Image
from images2gif import writeGif
import logging
logging.basicConfig(level=logging.DEBUG)

Exécuter comme un échantillon

if not os.path.exists('deep3d-0050.params'):
    urllib.urlretrieve('http://homes.cs.washington.edu/~jxie/download/deep3d-0050.params', 'deep3d-0050.params')
model = mx.model.FeedForward.load('deep3d', 50, mx.gpu(0))
shape = (384, 160)
img = cv2.imread('demo.jpg')
raw_shape = (img.shape[1], img.shape[0])
img = cv2.resize(img, shape)
X = img.astype(np.float32).transpose((2,0,1))
X = X.reshape((1,)+X.shape)
test_iter = mx.io.NDArrayIter({'left': X, 'left0':X})
Y = model.predict(test_iter)

FATAL ERROR!!!!

>>> test_iter = mx.io.NDArrayIter({'left': X, 'left0':X})
>>> Y = model.predict(test_iter)
[16:21:56] src/operator/./reshape-inl.h:311: Using target_shape will be deprecated.
[16:21:57] src/operator/./reshape-inl.h:311: Using target_shape will be deprecated.
[16:21:57] src/operator/./reshape-inl.h:311: Using target_shape will be deprecated.
[16:21:57] /home/ubuntu/mxnet/dmlc-core/include/dmlc/logging.h:235: [16:21:57] src/operator/./cudnn_softmax_activation-inl.h:44: Check failed: (in_data[softmax_activation::kData].ndim()) == (2) Input need to have 2 dimensions when mode=instance.
[16:21:57] /home/ubuntu/mxnet/dmlc-core/include/dmlc/logging.h:235: [16:21:57] src/engine/./threaded_engine.h:306: [16:21:57] src/operator/./cudnn_softmax_activation-inl.h:44: Check failed: (in_data[softmax_activation::kData].ndim()) == (2) Input need to have 2 dimensions when mode=instance.
An fatal error occurred in asynchronous engine operation. If you do not know what caused this error, you can try set environment variable MXNET_ENGINE_TYPE to NaiveEngine and run with debugger (i.e. gdb). This will force all operations to be synchronous and backtrace will give you the series of calls that lead to this error. Remember to set MXNET_ENGINE_TYPE back to empty after debugging.
terminate called after throwing an instance of 'dmlc::Error'
  what():  [16:21:57] src/engine/./threaded_engine.h:306: [16:21:57] src/operator/./cudnn_softmax_activation-inl.h:44: Check failed: (in_data[softmax_activation::kData].ndim()) == (2) Input need to have 2 dimensions when mode=instance.
An fatal error occurred in asynchronous engine operation. If you do not know what caused this error, you can try set environment variable MXNET_ENGINE_TYPE to NaiveEngine and run with debugger (i.e. gdb). This will force all operations to be synchronous and backtrace will give you the series of calls that lead to this error. Remember to set MXNET_ENGINE_TYPE back to empty after debugging.
Aborted (core dumped)

why?


(´ ・ ω ・ `)


en conclusion

――Il semble que deep3d puisse également être utilisé pour les vidéos, je veux donc faire de mon mieux «Je veux comprendre la logique de DeepLearning. --AWS est vraiment pratique --python est vraiment pratique ――Cette fois, surtout anaconda était pieux

Recommended Posts

L'histoire d'essayer deep3d et de perdre
L'histoire de Python et l'histoire de NaN
L'histoire d'essayer de reconnecter le client
L'histoire de sys.path.append ()
L'histoire d'essayer Sourcetrail × macOS × VS Code
L'histoire de la construction de Zabbix 4.4
L'histoire de Python sans opérateurs d'incrémentation et de décrémentation.
Une histoire d'essayer pyenv, virtualenv et virtualenvwrapper
Une histoire sur la tentative de contribuer à l'analyse COVID-19 avec l'offre gratuite d'AWS et l'échec
L'histoire de la participation à AtCoder
L'histoire du "trou" dans le fichier
L'histoire du remontage du serveur d'application
L'histoire de l'exportation d'un programme
L'histoire de l'exécution de python et de l'affichage des résultats sans fermer vim
Ceci et celui de la notation d'inclusion.
L'histoire d'une erreur dans PyOCR
L'histoire de la mise en place de MeCab dans Ubuntu 16.04
Revoir le concept et la terminologie de la régression
L'histoire de la manipulation des variables globales Python
Décodage du modèle LSTM de Keras.
L'histoire du traitement A du blackjack (python)
L'histoire du changement de pep8 en pycodestyle
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
L'histoire de la création d'une caméra sonore avec Touch Designer et ReSpeaker
L'histoire de la tentative de pousser SSH_AUTH_SOCK obsolète avec LD_PRELOAD à l'écran
L'histoire de l'apprentissage profond avec TPU
L'histoire selon laquelle le coût d'apprentissage de Python est faible
À propos du comportement de copy, deepcopy et numpy.copy
L'histoire de la création d'une compétence (probablement) minimale qui implémente la personnalisation et la facturation des compétences
Résumé des différences entre PHP et Python
Compréhension complète des concepts de Bellmanford et Dyxtra
La réponse de "1/2" est différente entre python2 et 3
L'histoire de la fabrication d'une boîte qui interconnecte la mémoire AL de Pepper et MQTT
Organiser la signification des méthodes, des classes et des objets
L'histoire de la création du Mel Icon Generator version 2
Changer la couleur des erreurs et avertissements Fabric
Comparez la vitesse d'ajout et de carte Python
Traitement d'image? L'histoire du démarrage de Python pour
L'histoire de la recherche du n optimal dans N poing
Histoire d'essayer d'utiliser Tensorboard avec Pytorch
L'histoire de la mauvaise lecture de la ligne d'échange de la commande supérieure
L'histoire de la lecture des données HSPICE en Python
L'histoire de l'affichage des fichiers multimédias dans Django
Description générale des notificateurs CPUFreq core et CPUFreq
Organisez l'utilisation super basique des Autotools et de pkg-config
L'histoire de la création d'un générateur d'icônes mel
J'ai lu et implémenté les variantes de UKR
Prise en compte des forces et faiblesses de Python
[Petite histoire] Téléchargez l'image de Ghibli immédiatement
Histoire de passer de Pipenv à la poésie
Les parties sympas et regrettables de Cloud Datalab
L'histoire d'un technicien de haut niveau essayant de prédire la survie du Titanic
L'histoire du portage du code de C vers Go (et vers la spécification du langage)
Une histoire sur la tentative d'introduire Linter au milieu d'un projet Python (Flask)