Предисловие:
Способ загрузки 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, он возвращает словарный тип данных, включая пары ключ-значение {имя файла: массив}. Например, пары ключ-значение в этом примере следующие:
- 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()
Для получения подробной информации, пожалуйста, обратитесь к: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 ++ Абстрактные классы и создание производных классов
Вопрос:
Ошибка произошла, когда я загружал данные 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')