Я сохраняю 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)
Но когда я смотрю на значения элементов из извлеченного изображения, оно полностью отличается от элементов исходного изображения даже количеством элементов матрицы.
Любая помощь будет принята с благодарностью