2017-04-09 1 views
0

J'essaie de nourrir mon propre ensemble de données au modèle CNN que j'ai créé. Le code permettant de créer les fichiers de formation et de test .t7 est téléchargé here.Lua/Torch - Erreur lors de la création des fichiers train.t7 et test.t7 à l'aide de l'ensemble de données personnalisé

J'ai testé ce code en créant un train_set.t7 de 5000 images et test_set.t7 de 500 images. Tout s'est bien passé et j'ai pu charger les images sur le modèle CNN. Ensuite, j'ai essayé de créer un autre ensemble de fichiers .t7 à partir d'un ensemble de données plus volumineux. J'aimerais expliquer un peu l'organisation de l'ensemble de données. Il existe un dossier ROOT appelé data (dans le code, recherchez ROOT). Il y a deux sous-dossiers: train et test. Chacun de ces sous-dossiers est divisé en 5 dossiers différents nommés: 1, 2, 3, 4 et 5. Chacun de ces dossiers contient environ 70 000 images dans le cas de train.

Le problème est que mon code génère l'erreur suivante après avoir ajouté tous les fichiers de data/train/1:

/home/ubuntu/torch/install/bin/luajit: ...e/ubuntu/torch/install/share/lua/5.1/torchx/indexdir.lua:53: attempt to perform arithmetic on a nil value 
stack traceback: 
    ...e/ubuntu/torch/install/share/lua/5.1/torchx/indexdir.lua:53: in function 'indexdir' 
    create_t7.lua:25: in main chunk 
    [C]: in function 'dofile' 
    ...untu/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk 
    [C]: at 0x0000cff9 

J'ai essayé de changer l'ordre des dossiers, mais il n'a pas aidé. Qu'est-ce que cette erreur indique? Merci d'avance.

Répondre

0

L'erreur signifie que ce soit findFile commande variable ou coquille wc -L 'findFile' | cut -f1 -d à la ligne 53 dans indexdir.lua résultats dans néant.

local maxPathLength = tonumber(sys.fexecute(wc .. " -L '" 
              .. findFile .. "' |" 
              .. cut .. " -f1 -d' '")) + 1 

Donc, essentiellement les tentatives lua pour effectuer une opération nil +1 qui est une erreur. Vérifiez attentivement vos chemins path_local.

+0

Mes 'chemin_local' ont raison. J'ai récemment essayé d'utiliser ce code dans une machine avec une plus grande RAM et cela a fonctionné. J'essaie de voir s'il y a de meilleures alternatives. –

+0

Il ne s'agit peut-être pas du problème de RAM "insuffisant", mais de la commande "wc' shell" qui aboutit à "nil". Les deux machines fonctionnent-elles sous Linux? – minerals

+0

Oui. Mais la machine qui jette l'erreur est un Jetson TX1. La deuxième machine est un ordinateur portable Lenovo. –