Сохранение MNIST в mongoDB. Как извлечь их из БД в том же формате, что и MNIST? - PullRequest
0 голосов
/ 04 апреля 2019

Я сохраняю Mnist Images в MongoDB как двоичные данные для последующего использования. Проблема в том, что когда я извлекаю двоичные данные из БД и пытаюсь восстановить исходное изображение, я получаю бессмысленные данные (не близкие к тому, что было на самом деле)

Сначала я использую keras для импорта набора данных Mnist_fashion.

from tensorflow import keras

(train_images, train_labels), (test_images, test_labels) = keras.datasets.fashion_mnist.load_data()
train_images = train_images / 255.0

Затем я инициализирую свою базу данных Монго:

import numpy as np
from pymongo import MongoClient
import pickle
from bson.binary import Binary

client = MongoClient('localhost:27017')
db = client.myFirstMB

Во-вторых, храните MNIST для Монго

len_dataset = 10 # just save 10 samples only
for i in range(len_dataset):
    image = np.array(training_images[i])
    db.test.insert({'image': Binary(pickle.dumps(image, protocol=0) ) , "label" : int(training_labels[i]) })

Наконец, когда я попытался извлечь данные из базы данных, вот так:

db = get_db()
all_mongodb = db.test.find()
extracted_img = all_mongodb[0]["image"] #get the image field from the first object,
extracted_img = np.fromstring(extrated_img)

Но когда я смотрю на значения элементов из извлеченного изображения, оно полностью отличается от элементов исходного изображения даже количеством элементов матрицы.

Любая помощь будет принята с благодарностью

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