2015-10-25 4 views
0

Я в настоящее время работает над этим: http://cs231n.github.io/assignment1/. Как вы можете видеть, это очень очень очень простое упражнение в компьютерном видении. Но мне трудно справиться с тем, что в нем. В основном у меня есть этот файл здесь: vision.stanford.edu/teaching/cs231n/assignment1.zip, и мне нужно его запустить. Но в ней я нашел первые строки кода, чтобы быть запутанным:Python, iPython Сведения о реализации ноутбука запутываются

import random 
import numpy as np 
from cs231n.data_utils import load_CIFAR10 
import matplotlib.pyplot as plt 

cs231n.data_utils не признается и я не знаю, чтобы указать каталог для машины, чтобы знать. И я даже не очень разбираюсь в iPython Notebook, сейчас я знаю только, как просматривать его в Интернете, но я все еще не могу запустить код. Я просто новичок в Python, все, что я знаю о языке, это то, что Я ввожу несколько строк в командные строки, и он будет делать магию. Кажется, это слишком много. Пожалуйста, помогите мне, спасибо вам большое!

Обновление: Я нашел быстрое & грязное решение: поместите папку в каталог по умолчанию. Но затем появилось 2 новых ошибки:

1) Сначала была эта ошибка: в файле data_utils.py была строка: import cPickle as pickle. И он сказал: Нет модуля с именем cPickle. Мне нужно было изменить имя от cPickle до _pickle для его запуска. 2) Эти код здесь:

# Load the raw CIFAR-10 data. 
cifar10_dir = u'cs231n/datasets/cifar-10-batches-py' 
X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir) 

# As a sanity check, we print out the size of the training and test data. 
#print ('Training data shape: ', X_train.shape) 
# print ('Training labels shape: ', y_train.shape) 
# print ('Test data shape: ', X_test.shape) 
#print ('Test labels shape: ', y_test.shape) 

Ошибка:

UnicodeDecodeError      Traceback (most recent call last) 
<ipython-input-19-abf216ad1f9c> in <module>() 
     1 # Load the raw CIFAR-10 data. 
     2 cifar10_dir = u'cs231n/datasets/cifar-10-batches-py' 
----> 3 X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir) 
     4 
     5 # As a sanity check, we print out the size of the training and test data. 

C:\Users\son\assignment1\cs231n\data_utils.py in load_CIFAR10(ROOT) 
    20 for b in range(1,6): 
    21  f = os.path.join(ROOT, u'data_batch_%d' % (b,)) 
---> 22  X, Y = load_CIFAR_batch(f) 
    23  xs.append(X) 
    24  ys.append(Y) 

C:\Users\son\assignment1\cs231n\data_utils.py in load_CIFAR_batch(filename) 
     7 """ load single batch of cifar """ 
     8 with open(filename.encode('utf-8'), u'rb') as f: 
----> 9  datadict = pickle.load(f) 
    10  X = datadict[u'data'] 
    11  Y = datadict[u'labels'] 

UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128) 

А вот файл data_utils:

# import cPickle as pickle 
import _pickle as pickle 
import numpy as np 
import os 

def load_CIFAR_batch(filename): 
    """ load single batch of cifar """ 
    with open(filename, u'rb') as f: 
    datadict = pickle.load(f) 
    X = datadict[u'data'] 
    Y = datadict[u'labels'] 
    X = X.reshape(10000, 3, 32, 32).transpose(0,2,3,1).astype(u"float") 
    Y = np.array(Y) 
    return X, Y 

def load_CIFAR10(ROOT): 
    """ load all of cifar """ 
    xs = [] 
    ys = [] 
    for b in range(1,6): 
    f = os.path.join(ROOT, u'data_batch_%d' % (b,)) 
    X, Y = load_CIFAR_batch(f) 
    xs.append(X) 
    ys.append(Y) 
    Xtr = np.concatenate(xs) 
    Ytr = np.concatenate(ys) 
    del X, Y 
    Xte, Yte = load_CIFAR_batch(os.path.join(ROOT, u'test_batch')) 
    return Xtr, Ytr, Xte, Yte 

Большое спасибо!

ответ

0

Если вы новичок в python, вы прыгаете в глубокий конец с этим назначением - у python есть мягкая кривая обучения, если вы начнете правильно.

Перед тем, как получить кодировку, вы должны настроить и ознакомиться с ноутбуками. См. here, чтобы начать. Установка зависимостей - это медведь (или используемый), поэтому я рекомендую загрузить дистрибутив Anaconda Scientific Python, который включает в себя все, что вам нужно.

Для импорта модуля cs231n самое быстрое решение - просто поместить папку cs231n в папку, в которой находится ваш ноутбук (или ваш скрипт .py). Позже вы можете отправить PYTHONPATH и настроить его в удобное для вас время.

Удачи вам!

PS. Я просто посмотрел папку с вашим курсом, и, похоже, ваш инструктор позаботился о зависимостях! Если вы следовали указаниям, и это не сработало, свяжитесь с ним.

+0

У меня есть googleled PYTHONPATH, и я следовал одному из своих советов: Настройте переменную enviromental, назовите ее PYTHONPATH и укажите ее каталог в папке cs231. И когда я снова побежал, он нашел каталог, но он произвел еще одну странную ошибку: import cPickle as pickle; ImportError: Нет модуля с именем «cPickle».Я смущен – TruongTroll

+0

Ошибка, о которой вы сообщаете, произойдет, если вы используете python 3, но пытаетесь импортировать код, написанный для python 2. Это будет учитывать множество странных ошибок. Похоже, вам нужно вырвать свой питон и установить 2,7 (тьфу), желательно в виртуальном режиме, как это было рекомендовано. – alexis

+0

И вы изучали указания своего инструктора? Они выглядят так, как будто они созданы для вас. – alexis

0

Я думаю, что две ошибки касаются совместимости python. Этот код назначения записывается в python2.7, интересно, используете ли вы python3? Если да, то лучше перейти на python2.7.

Кстати, это действительно поздний ответ.

Смежные вопросы