From keras datasets import mnist error

[Keras] Решите проблему, связанную с невозможностью загрузки набора данных MNIST в примере., Русские Блоги, лучший сайт для обмена техническими статьями программиста.

Предисловие:

Способ загрузки MNIST в исходном коде keras — path = get_file (path, origin = ‘https: //s3.amazonaws.com/img-datasets/mnist.npz’), источник данных — через url = https: //s3.amazonaws .com / img-datasets / mnist.npz для загрузки. Доступ к URL-адресу был заблокирован, в результате чего случаи, связанные с MNIST, зависали в ссылке для загрузки данных. В этой статье в основном представлены решения, чтобы читатели, которым это нужно, могли запустить код кейса, чтобы испытать его.

Вклады этой статьи в основном включают следующее:

1) Предоставьте набор данных mnist_npz;

2) Проанализировать несколько связанных исходных кодов о mnist;

3) Предоставьте связанный случай, который может плавно запускать mnist под примером в исходном коде keras;

4) Было найдено несколько других решений и предоставлены соответствующие ссылки.

numpy.load(path)

Функция numpy.load () играет важную роль. Он может читать типы файлов, такие как .npy .npz, и возвращать соответствующий тип данных.

1) Если тип файла .pny, возвращается одномерный массив.

2) Если тип файла — .npz, он возвращает словарный тип данных, включая пары ключ-значение {имя файла: массив}. Например, пары ключ-значение в этом примере следующие:

  1. f = np.load(path)  
  2. x_train, y_train = f[‘x_train’], f[‘y_train’]  
  3. x_test, y_test = f[‘x_test’], f[‘y_test’]  
  4. f.close()  

Для получения подробной информации, пожалуйста, обратитесь к:https://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html

Оригинал. Keras examples mnist_mlp.py

# -*- coding: utf-8 -*-    
'''''Trains a simple deep NN on the MNIST dataset. 
 
Gets to 98.40% test accuracy after 20 epochs 
(there is *a lot* of margin for parameter tuning). 
2 seconds per epoch on a K520 GPU. 
'''  
  
from __future__ import print_function  
  
import keras  
from keras.datasets import mnist  
from keras.models import Sequential  
from keras.layers import Dense, Dropout  
from keras.optimizers import RMSprop  
  
  
batch_size = 128  
num_classes = 10  
epochs = 20  
  
# the data, shuffled and split between train and test sets  
(x_train, y_train), (x_test, y_test) = mnist.load_data()  
  
x_train = x_train.reshape(60000, 784)  
x_test = x_test.reshape(10000, 784)  
x_train = x_train.astype('float32')  
x_test = x_test.astype('float32')  
x_train /= 255  
x_test /= 255  
print(x_train.shape[0], 'train samples')  
print(x_test.shape[0], 'test samples')  
  
# convert class vectors to binary class matrices  
y_train = keras.utils.to_categorical(y_train, num_classes)  
y_test = keras.utils.to_categorical(y_test, num_classes)  
  
model = Sequential()  
model.add(Dense(512, activation='relu', input_shape=(784,)))  
model.add(Dropout(0.2))  
model.add(Dense(512, activation='relu'))  
model.add(Dropout(0.2))  
model.add(Dense(10, activation='softmax'))  
  
model.summary()  
  
###  
# 1)categorical_crossentropy(output, target, from_logits=False):  
# Вычислить категориальную кроссентропию выходного тензора и целевого тензора Целевой тензор и выходной тензор должны иметь одинаковую форму.  
 # Функция потери журнала нескольких классов, соответствующая классификатору softmax.  
#   
# 2)RMSprop()  
 # Улучшение алгоритма AdaGrad. Поскольку все нейронные сети находятся в невыпуклых условиях, RMSProp дает лучшие результаты в невыпуклых условиях, изменяя накопление градиента на экспоненциально убывающее скользящее среднее, чтобы отбросить далекую прошлую историю.  
# reference:http://blog.csdn.net/bvl10101111/article/details/72616378  
#   
model.compile(loss='categorical_crossentropy',  
              optimizer=RMSprop(),  
              metrics=['accuracy'])  
  
history = model.fit(x_train, y_train,  
                    batch_size=batch_size,  
                    epochs=epochs,  
                    verbose=1,  
                    validation_data=(x_test, y_test))  
score = model.evaluate(x_test, y_test, verbose=0)  
print('Test loss:', score[0])  
print('Test accuracy:', score[1])

.keraskerasdatasetsmnist.py — load_data()

# -*- coding: utf-8 -*-    
from ..utils.data_utils import get_file  
import numpy as np  
      
def load_data(path='mnist.npz'):  
    """Loads the MNIST dataset. 
     
     # Arguments 
      path: path where to cache the dataset locally 
        (relative to ~/.keras/datasets). 
     
    # Returns 
     Tuple of Numpy arrays: `(x_train, y_train), (x_test, y_test)`. 
     
    # numpy.load() 
    # numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding='ASCII') 
    # 1) Load arrays or pickled objects from .npy, .npz or pickled files 
    # 2)  
    # reference: https://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html 
     
    """  
    path = get_file(path, origin='https://s3.amazonaws.com/img-datasets/mnist.npz')  
    f = np.load(path)  
    x_train, y_train = f['x_train'], f['y_train']  
    x_test, y_test = f['x_test'], f['y_test']  
    f.close()  
    return (x_train, y_train), (x_test, y_test)  

Загрузите набор данных mnist.npz

Набор данных mnist.npz, использованный в этой статье, был загружен с японского сервера и доступен здесь бесплатно. Если возникла проблема с загрузкой, вы можете оставить сообщение.

Ссылка на скачивание:https://pan.baidu.com/s/1jH6uFFC Пароль: dw3d

Преобразовать mnist_mlp.py

способ 1:

Исходный код mnist_mlp.py использует следующую команду для получения набора данных:

# the data, shuffled and split between train and test sets  
 (x_train, y_train), (x_test, y_test) = mnist.load_data()  

Он вызывает функцию def load_data (path = ‘mnist.npz’) в скрипте. Keras keras datasets mnist.py, что является причиной того, что URL-адрес не может быть запущен в обычном режиме, потому что URL-адрес защищен стеной. В этой статье набор данных mnist.npz был подготовлен заранее, а затем изменены некоторые коды, чтобы он работал нормально. Другими словами, в этой статье используется метод «чтения локального набора данных», шаги следующие:

1) Загрузите набор данных mnist_npz и поместите его в каталог. Keras examples.

2) Модифицированный код mnist_mlp.py выглядит следующим образом:

# -*- coding: utf-8 -*-    
'''''Trains a simple deep NN on the MNIST dataset. 
 
Gets to 98.40% test accuracy after 20 epochs 
(there is *a lot* of margin for parameter tuning). 
2 seconds per epoch on a K520 GPU. 
'''  
  
from __future__ import print_function  
  
import keras  
from keras.datasets import mnist  
from keras.models import Sequential  
from keras.layers import Dense, Dropout  
from keras.optimizers import RMSprop  
  
batch_size = 128  
num_classes = 10  
epochs = 20  
  
# the data, shuffled and split between train and test sets   
# (x_train, y_train), (x_test, y_test) = mnist.load_data()  
  
import numpy as np  
path='./mnist.npz'  
f = np.load(path)  
x_train, y_train = f['x_train'], f['y_train']  
x_test, y_test = f['x_test'], f['y_test']  
f.close()  
  
x_train = x_train.reshape(60000, 784).astype('float32')  
x_test = x_test.reshape(10000, 784).astype('float32')  
x_train /= 255  
x_test /= 255  
print(x_train.shape[0], 'train samples')  
print(x_test.shape[0], 'test samples')  
  
# convert class vectors to binary class matrices  
 # label - это всего 10 категорий от 0 до 9, keras требует, чтобы формат был матрицей двоичного класса  
  
y_train = keras.utils.to_categorical(y_train, num_classes)  
y_test = keras.utils.to_categorical(y_test, num_classes)  
  
# add by hcq-20171106  
# Dense of keras is full-connection.  
model = Sequential()  
model.add(Dense(512, activation='relu', input_shape=(784,)))  
model.add(Dropout(0.2))  
model.add(Dense(512, activation='relu'))  
model.add(Dropout(0.2))  
model.add(Dense(num_classes, activation='softmax'))  
  
model.summary()  
  
model.compile(loss='categorical_crossentropy',  
              optimizer=RMSprop(),  
              metrics=['accuracy'])  
  
history = model.fit(x_train, y_train,  
                    batch_size=batch_size,  
                    epochs=epochs,  
                    verbose=1,  
                    validation_data=(x_test, y_test))  
score = model.evaluate(x_test, y_test, verbose=0)  
print('Test loss:', score[0])  
print('Test accuracy:', score[1]) 

Эффект бега следующий:

    60000 train samples  
    10000 test samples  
    _________________________________________________________________  
    Layer (type)                 Output Shape              Param #     
    =================================================================  
    dense_1 (Dense)              (None, 512)               401920      
    _________________________________________________________________  
    dropout_1 (Dropout)          (None, 512)               0           
    _________________________________________________________________  
    dense_2 (Dense)              (None, 512)               262656      
    _________________________________________________________________  
    dropout_2 (Dropout)          (None, 512)               0           
    _________________________________________________________________  
    dense_3 (Dense)              (None, 10)                5130        
    =================================================================  
    Total params: 669,706  
    Trainable params: 669,706  
    Non-trainable params: 0  
    _________________________________________________________________  
    Train on 60000 samples, validate on 10000 samples  
    Epoch 1/20  
    2017-11-09 23:06:16.881800: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0)  
      
    ... ...  
      
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0387 - acc: 0.9888 - val_loss: 0.0706 - val_acc: 0.9814  
    Epoch 8/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0341 - acc: 0.9899 - val_loss: 0.0789 - val_acc: 0.9827  
    Epoch 9/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0304 - acc: 0.9911 - val_loss: 0.0851 - val_acc: 0.9833  
    Epoch 10/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0290 - acc: 0.9918 - val_loss: 0.0867 - val_acc: 0.9818  
    Epoch 11/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0264 - acc: 0.9924 - val_loss: 0.0881 - val_acc: 0.9833  
    Epoch 12/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0261 - acc: 0.9928 - val_loss: 0.1095 - val_acc: 0.9801  
    Epoch 13/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0246 - acc: 0.9931 - val_loss: 0.1012 - val_acc: 0.9830  
    Epoch 14/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0233 - acc: 0.9935 - val_loss: 0.1116 - val_acc: 0.9812  
    Epoch 15/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0223 - acc: 0.9942 - val_loss: 0.1016 - val_acc: 0.9832  
    Epoch 16/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0214 - acc: 0.9943 - val_loss: 0.1053 - val_acc: 0.9832  
    Epoch 17/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0178 - acc: 0.9950 - val_loss: 0.1095 - val_acc: 0.9838  
    Epoch 18/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0212 - acc: 0.9949 - val_loss: 0.1158 - val_acc: 0.9822  
    Epoch 19/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0197 - acc: 0.9951 - val_loss: 0.1112 - val_acc: 0.9831  
    Epoch 20/20  
    60000/60000 [==============================] - 1s 23us/step - loss: 0.0203 - acc: 0.9951 - val_loss: 0.1097 - val_acc: 0.9833  
    Test loss: 0.109655842465  
    Test accuracy: 0.9833  

Метод 2: обратитесь к этому [сообщению в блоге]

Reference:

keras Китайский документ: http://keras-cn.readthedocs.io/en/latest/

Прочтите некоторые функции TF, keras и проблемы, обнаруженные в исходном коде: http://blog.csdn.net/jsliuqun/article/details/64444302

Python читает набор данных mnist: https://blog.mythsman.com/2016/01/25/1/

System information

  • OS Platform and Distribution: macOS version10.15
  • TensorFlow version: 2.0
  • Python version: 3.7
  • Installed using: pip install
  • Bazel version (if compiling from source): 1.0.0

I have tried the first beginner example:

`from future import absolute_import, division, print_function, unicode_literals

import tensorflow as tf

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation=’relu’),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation=’softmax’)
])

model.compile(optimizer=’adam’,
loss=’sparse_categorical_crossentropy’,
metrics=[‘accuracy’])

model.fit(x_train, y_train, epochs=5)

model.evaluate(x_test, y_test, verbose=2)`

But it always seems to break at (x_train, y_train), (x_test, y_test) = mnist.load_data(). The programs run fine on Colaboratory but if I try to run in locally on Terminal, it fails. Seems to be a certification issue.

I have download installed everything, even upgraded just to be sure.

Here are the logs that are printed out:

Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
Traceback (most recent call last):
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 1317, in do_open
encode_chunked=req.has_header(‘Transfer-encoding’))
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py», line 1229, in request
self._send_request(method, url, body, headers, encode_chunked)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py», line 1275, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py», line 1224, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py», line 1016, in _send_output
self.send(msg)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py», line 956, in send
self.connect()
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py», line 1392, in connect
server_hostname=server_hostname)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py», line 412, in wrap_socket
session=session
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py», line 853, in _create
self.do_handshake()
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py», line 1117, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File «/Users/DanialZikri/venv37/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/data_utils.py», line 251, in get_file
urlretrieve(origin, fpath, dl_progress)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 247, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 222, in urlopen
return opener.open(url, data, timeout)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 525, in open
response = self._open(req, data)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 543, in _open
‘_open’, req)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 503, in _call_chain
result = func(*args)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 1360, in https_open
context=self._context, check_hostname=self._check_hostname)
File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py», line 1319, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File «/Users/DanialZikri/Documents/TensorflowFirst.py», line 7, in
(x_train, y_train), (x_test, y_test) = mnist.load_data()
File «/Users/DanialZikri/venv37/lib/python3.7/site-packages/tensorflow_core/python/keras/datasets/mnist.py», line 50, in load_data
‘731c5ac602752760c8e48fbffcf8c3b850d9dc2a2aedcf2cc48468fc17b673d1’)
File «/Users/DanialZikri/venv37/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/data_utils.py», line 255, in get_file
raise Exception(error_msg.format(origin, e.errno, e.reason))
Exception: URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz: None — [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

У меня есть keras, установленный на моей машине linux, но когда я пытаюсь импортировать набор данных из keras.datasets, я получаю сообщение об ошибке, которое он не может найти.

Итак, например:

from keras.datasets import mnist

Я получаю сообщение об ошибке

ImportError: нет модуля с именем keras.datasets

Я установил keras с помощью pip install и успешно установил его.

16 фев. 2016, в 12:43

Поделиться

Источник

3 ответа

В действительности проблема заключалась в том, что у меня было несколько версий Python.

Удаление Anaconda Python и установка всех библиотек с помощью pip/apt-get вместо conda решили мою проблему.

Я нашел, что это правда, но нет необходимости удалять anaconda.
У меня была такая же проблема, но с несколькими версиями python. Тем не менее, я создал среду, которая использовала только версию Anaconda (в то время как в этой среде). В терминале (на Mac и других подходящих терминалах) введите/скопируйте

conda create -n dataweekends python=2.7 pandas scikit-learn jupyter matplotlib

dataweekends — это просто имя созданной вами среды. Чтобы получить доступ к этому, просто используйте команду

source activate dataweekends

Помните, что вам (возможно) придется переустанавливать зависимости один раз в этой новой среде.

Я получил этот трюк отсюда https://www.dataweekends.com/blog/2017/03/09/set-up-your-mac-for-deep-learning-with-python-keras-and-tensorflow»

Я бы также рекомендовал настроить разные среды для каждого проекта, который вы выполняете на питоне.

jmurph
27 авг. 2017, в 16:48

Поделиться

У вас есть keras.py или keras.pyc в текущем рабочем каталоге? Если это так, это испортит импорт. Попробуйте переименовать файл и/или удалить keras.pyc.

Justin Shenk
05 март 2017, в 15:58

Поделиться

Благодаря комментарию от Selcuk, который заставил меня на правильном пути.

Действительно, проблема заключалась в том, что у меня было несколько версий Python.
Я выполнил некоторые онлайн-инструкции по установке Keras, которые рекомендовали установить MiniConda/Conda/Anaconda, которая является его собственной версией python. Итак, у меня было две версии Python2.7:

  • Обычный Linux Python 2.7
  • Anaconda Python 2.7

Удаление Anaconda Python и установка всех библиотек с помощью pip/apt-get вместо conda решили мою проблему.

patapouf_ai
16 фев. 2016, в 15:09

Поделиться

Ещё вопросы

  • 0Не в состоянии получить доступ к загруженным файлам в контроллере
  • 0Различия в привязке области видимости AngularJS между {foo: «=»} и {foo: «= myFoo»}
  • 0телефонный разрыв с $ .ajax (Android)
  • 1Разделить файл web.config
  • 0Скрипт не работает правильно
  • 0Как оптимизировать CSS и / или другие модификации ресурсов в веб-приложении в Intellij Idea?
  • 1Почему я не могу наследовать от частного класса / интерфейса?
  • 1Подстрока с несколькими экземплярами одного и того же символа
  • 0Оптимизировать функцию ucallwords
  • 1Пул соединений с сервером приложений Java для разных баз данных на одном сервере
  • 1Приложение Struts 2 выдает исключение 404
  • 1Express + MongoDB — запрос объекта
  • 0angularjs $ применить в логине
  • 0Увеличить BCP: не удается найти BCP
  • 1Как установить адрес конечной точки веб-службы во время выполнения?
  • 0Вернуть только необходимое значение с preg_match
  • 0у класса ошибки нет члена с именем — android libtilerenderer
  • 0Как мы можем избежать выполнения блока ошибок, даже если в angularjs произошла ошибка на стороне клиента?
  • 0Автозаполнение jQuery UI плагин с JSP и сервлетов не работает
  • 0AngularJS не заполняет выпадающее меню
  • 1Python — Как я могу сделать этот повторяющийся код короче, используя цикл?
  • 1Несколько Асинхронных / Ожидать Блокировка Try-Catch
  • 0Сделать поиск в текстовом файле без учета регистра
  • 0Вставьте таблицу в метку, используя HTML
  • 1Полимер — Распределяются ли узлы в стиле, а затем распространяются?
  • 0как показать дату с daterange (2 даты) в sql
  • 1Как получилось, что в Localytics было зарегистрировано 2 сессии за запуск приложения?
  • 1Плагин SonarQube Java — пример пользовательского правила с 4.1
  • 0Symfony2 дублирует идентификатор в 2 полях (id и idbis) со стратегией = «AUTO»
  • 0Вложенные директивы и NgModel
  • 1Что означает имя типа в скобках?
  • 1ProgressDialog работает в потоке на андроид
  • 0Поиск элементов с помощью тире (-) в простом HTML дом [дубликаты]
  • 1Python Imp не находит модули
  • 0создал только один вход для нескольких значений в ng-repeat
  • 1Обнаружение вмятин в кузове автомобиля
  • 1Android: возможно ли одноадресное намерение?
  • 0Нахождение класса значения из автозаполнения по имени
  • 0C ++ Как работает повышение духа паразитами
  • 0Можно ли изменить частную переменную-член в переопределенном методе?
  • 1Получение ошибки исключения нулевой точки java.lang при обработке
  • 1Перекрытие элементов при использовании динамического списка высоты
  • 1Растянуть списки, чтобы соответствовать размерам друг друга
  • 064-битные и 32-битные исполняемые файлы C ++ с code :: blocks
  • 1Как исправить первые три элемента массива (продолжайте отображаться как ноль)?
  • 1Запуск действия с Intent и SetClassName
  • 0На сетке xeditable, где курсор перемещается в тот же столбец, когда пользователь нажимает клавишу Tab
  • 0Ошибка синтаксического анализа внешних данных XML как HTML с JQuery
  • 0Как я могу показать данные из 2 разных таблиц, используя INNER JOIN в PHP?
  • 0C ++ Абстрактные классы и создание производных классов

Сообщество Overcoder

Вопрос:

Ошибка произошла, когда я загружал данные MNIST, используя следующий код. (Anaconda уже установлен и закодирован в онлайн-ноутбуке Jupyter.)

from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')

Появился Timeouterror, и я понятия не имею, где я совершил ошибки. Я закрыл свой прокси vpn, и он не работал. Помогите!

TimeoutError                              Traceback (most recent call last)
<ipython-input-1-3ba7b9c02a3b> in <module>()
1 from sklearn.datasets import fetch_mldata
----> 2 mnist = fetch_mldata('MNIST original')

~Anaconda3libsite-packagessklearndatasetsmldata.py in fetch_mldata(dataname, target_name, data_name, transpose_data, data_home)
152         urlname = MLDATA_BASE_URL % quote(dataname)
153         try:
--> 154             mldata_url = urlopen(urlname)
155         except HTTPError as e:
156             if e.code == 404:

~Anaconda3liburllibrequest.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)
221     else:
222         opener = _opener
--> 223     return opener.open(url, data, timeout)
224
225 def install_opener(opener):

~Anaconda3liburllibrequest.py in open(self, fullurl, data, timeout)
524             req = meth(req)
525
--> 526         response = self._open(req, data)
527
528         # post-process response

~Anaconda3liburllibrequest.py in _open(self, req, data)
542         protocol = req.type
543         result = self._call_chain(self.handle_open, protocol, protocol +
--> 544                                   '_open', req)
545         if result:
546             return result

~Anaconda3liburllibrequest.py in _call_chain(self, chain, kind, meth_name, *args)
502         for handler in handlers:
503             func = getattr(handler, meth_name)
--> 504             result = func(*args)
505             if result is not None:
506                 return result

~Anaconda3liburllibrequest.py in http_open(self, req)
1344
1345     def http_open(self, req):
-> 1346         return self.do_open(http.client.HTTPConnection, req)
1347
1348     http_request = AbstractHTTPHandler.do_request_

~Anaconda3liburllibrequest.py in do_open(self, http_class, req, **http_conn_args)
1319             except OSError as err: # timeout error
1320                 raise URLError(err)
-> 1321             r = h.getresponse()
1322         except:
1323             h.close()

~Anaconda3libhttpclient.py in getresponse(self)
1329         try:
1330             try:
-> 1331                 response.begin()
1332             except ConnectionError:
1333                 self.close()

~Anaconda3libhttpclient.py in begin(self)
295         # read until we get a non-100 response
296         while True:
--> 297             version, status, reason = self._read_status()
298             if status != CONTINUE:
299                 break

~Anaconda3libhttpclient.py in _read_status(self)
256
257     def _read_status(self):
--> 258         line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
259         if len(line) > _MAXLINE:
260             raise LineTooLong("status line")

~Anaconda3libsocket.py in readinto(self, b)
584         while True:
585             try:
--> 586                 return self._sock.recv_into(b)
587             except timeout:
588                 self._timeout_occurred = True

TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

Я загрузил набор данных MNIST и попытался загрузить данные самостоятельно. Я скопировал код, используемый для загрузки MNIST, но я снова не смог загрузить данные. Я думал, что мне нужно изменить какой-то код, а не полностью скопировать код из Интернета, но я не знаю, где я должен это сделать. (Просто начинающий Python) Код, который я использовал для загрузки загруженных данных MNIST. Это потому, что я положил данные в неправильном файле?

def loadmnist(imagefile, labelfile):

# Open the images with gzip in read binary mode
images = open(imagefile, 'rb')
labels = open(labelfile, 'rb')

# Get metadata for images
images.read(4)  # skip the magic_number
number_of_images = images.read(4)
number_of_images = unpack('>I', number_of_images)[0]
rows = images.read(4)
rows = unpack('>I', rows)[0]
cols = images.read(4)
cols = unpack('>I', cols)[0]

# Get metadata for labels
labels.read(4)
N = labels.read(4)
N = unpack('>I', N)[0]

# Get data
x = np.zeros((N, rows*cols), dtype=np.uint8)  # Initialize numpy array
y = np.zeros(N, dtype=np.uint8)  # Initialize numpy array
for i in range(N):
for j in range(rows*cols):
tmp_pixel = images.read(1)  # Just a single byte
tmp_pixel = unpack('>B', tmp_pixel)[0]
x[i][j] = tmp_pixel
tmp_label = labels.read(1)
y[i] = unpack('>B', tmp_label)[0]

images.close()
labels.close()
return (x, y)

Над частью хорошо.

train_img, train_lbl = loadmnist('data/train-images-idx3-ubyte'
, 'data/train-labels-idx1-ubyte')
test_img, test_lbl = loadmnist('data/t10k-images-idx3-ubyte'
, 'data/t10k-labels-idx1-ubyte')

Ошибка такая.

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-5-b23a5078b5bb> in <module>()
1 train_img, train_lbl = loadmnist('data/train-images-idx3-ubyte'
----> 2                                  , 'data/train-labels-idx1-ubyte')
3 test_img, test_lbl = loadmnist('data/t10k-images-idx3-ubyte'
4                                , 'data/t10k-labels-idx1-ubyte')

<ipython-input-4-967098b85f28> in loadmnist(imagefile, labelfile)
2
3     # Open the images with gzip in read binary mode
----> 4     images = open(imagefile, 'rb')
5     labels = open(labelfile, 'rb')
6

FileNotFoundError: [Errno 2] No such file or directory: 'data/train-images-idx3-ubyte'

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

Лучший ответ:

Если вы хотите загрузить набор данных из некоторой библиотеки напрямую, а не загружать его, а затем загружать, загрузите его с Keras.

Это можно сделать так

from keras.datasets import mnist

(X_train, y_train), (X_test, y_test) = mnist.load_data()

Если вы новичок в Machine Learning и Python, которые хотят узнать больше об этом, я рекомендую вам взглянуть на это отличное сообщение в блоге.

Кроме того, расширение файла также требуется при передаче его функции. т.е. вы должны вызвать функцию, подобную этой.

train_img, train_lbl = loadmnist('mnist//train-images-idx3-ubyte.gz'
                                 , 'mnist//train-labels-idx1-ubyte.gz')
test_img, test_lbl = loadmnist('mnist//t10k-images-idx3-ubyte.gz'
                               , 'mnist//t10k-labels-idx1-ubyte.gz')

В коде, который вы используете для загрузки данных с локального диска, он выдает ошибку, потому что файл отсутствует в данном месте. Убедитесь, что папка mnist присутствует в папке, в которой находится ваш ноутбук.

Ответ №1

Сервер не работает некоторое время, пожалуйста, обратитесь к некоторым решениям в этом потоке GitHub, включая импорт из Tensorflow или напрямую из других источников.

Ответ №2

Вы можете загрузить его непосредственно из dlets sklearn.

from sklearn import datasets
digits = datasets.load_digits()

Или вы можете загрузить его с помощью Keras.

from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

Другой вариант – просто загрузить набор данных и загрузить его с чем-то вроде панд.

df = pd.read_csv('filename.csv')

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Frmt read ошибка пионер
  • Frm 40505 oracle error unable to perform query
  • Frija error 102
  • Friendly hud error
  • Friday the 13th the game ошибка подключения

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии