«MemoryError» в VSCode, но не в Jupyter / AnacondaPrompt - PullRequest
0 голосов
/ 10 июля 2019

Я сталкиваюсь с ошибкой MemoryError размером около 2 ГБ в моей реализации Python функции split_train_test для набора данных MNIST.

Диспетчер задач едва достигает 50% от максимального объема памяти, включая другие приложения, которые открыты на моем компьютере.У меня 16 ГБ ОЗУ.

Я вижу, что большинство людей указывают на проблему 64 против 32 бит или python 2 против 3;однако мой VS-код и Windows 10 являются 64-битными и view> Command Palette> Python: выберите Interpreter, показывает, что я использую Python 3.7.1 64-bit из anaconda3 / conda.

Я знаю кодсам по себе работает, потому что я использовал вывод в Jupyter после того, как я импортировал файл py.

    def split_train_val(val_frac=0.3, size=1):
        """Splits training and validation set

        param val_frac: fraction of total training set to be used for validation
        """
        # Read converted csv
        X_raw = pd.read_csv('Data/csv/X_train.csv')
        Y_raw = pd.read_csv('Data/csv/y_train.csv')

        # Rename Label column, concat to X set
        Y_raw.columns = ['Label']
        df = pd.concat([Y_raw, X_raw], axis=1).sample(frac=size)

        # Split training set into train and val
        N = df.shape[0] 
        n = round(val_frac * N)
        train = df.iloc[n:,:]
        val = df.iloc[:n,:]

        x_train = train.drop(['Label'], axis=1)
        x_val = val.drop(['Label'], axis=1)
        y_train = train.Label
        y_val = val.Label


        # Return training and validation set
        return(x_train, y_train, x_val, y_val)


    x_train, y_train, x_val, y_val = split_train_val()

Сообщение об ошибке:

Traceback (most recent call last):
  File "preprocessing.py", line 71, in <module>
    x_train, y_train, x_val, y_val = split_train_val()
  File "preprocessing.py", line 53, in split_train_val
    df = pd.concat([Y_raw, X_raw], axis=1).sample(frac=size)
  File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\reshape\concat.py", line 229, in concat
    return op.get_result()
  File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\reshape\concat.py", line 426, in get_result
    copy=self.copy)
  File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\managers.py", line 2052, in concatenate_block_managers
    values = values.copy()
MemoryError

Наконец, я попытался изменить настройку jedi.memoryLimit на -1в соответствии с некоторыми документами VS Code.Это тоже не помогло.

Я импортировал и запустил функцию в Jupyter.Я также запустил этот точный код в моей подсказке Anaconda.Ни один из них не приводит к какой-либо ошибке.

1 Ответ

0 голосов
/ 10 июля 2019

VS Код и Windows 10 могут быть 64-битными для вас, но ваша установка Python является 32-битной, как показано вашим путем: C:\Users\...\AppData\Local\Programs\Python\Python37-32\. Попробуйте явно установить 64-битную версию Python и обязательно выберите ее в VS Code.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...