Как решить нестабильную плохую ошибку magi c number - PullRequest
0 голосов
/ 14 июля 2020

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

Обычно, когда я запускаю свой run.py для анализа и отображения изображений, он возвращает sstable ( bad magi c число) ошибка.

Мы не знаем, почему это происходит и что делать.

Вот run.py:

    import os, gc
from skimage import io
import glob
import pandas as pd
import glob
import tensorflow as tf
from tensorflow import keras
from keras.preprocessing import image
from tensorflow.keras.models import Sequential, save_model, load_model
import matplotlib.pyplot as plt
import numpy as np
from skimage import transform
from keras.optimizers import Adam
from keras.applications import mobilenet_v2
from PIL import Image
path = []
for file in os.listdir("./media_cdn"):
    path.append(file)
print(path)
filepath = './saved_model'
model = load_model(filepath, custom_objects= None, compile = False)
loss = 'CategoricalCrossentropy'
optimizer = Adam(lr=1e-5)
metrics = ['binary_accuracy']
model.compile(optimizer=optimizer, loss=loss, metrics=metrics)
def load(filename):
np_image = Image.open("./media_cdn/" + filename)
np_image = np.array(np_image).astype('float32')/255
np_image = transform.resize(np_image, (244, 244, 3))
np_image = np.expand_dims(np_image, axis=0)
return np_image
new_image = load(path[0])
print(new_image.shape)
new_model = keras.Sequential([model])
new_model.load_weights('./model_weights')
prediction = new_model.predict_classes(new_image)
classes = np.argmax(prediction, axis = -1)
print(classes)
print('This is the Diagnosis:')
if classes == 0:
    print('MELANOMA')
if classes == 1:
    print('Melanocytic Nevus')
if classes == 2:
    print('Basal Cell Carcinoma')
if classes == 3:
    print('Arctinic Keratosis')
if classes == 4:
    print('Benign Keratosis')
if classes == 5:
    print('Dermatofibroma')
if classes == 6:
    print('Vascular Lesion')
if classes == 7:
    print('Squamous Cell Carcinoma')
if classes == 8:
    print(['Unknown', 'BCC', 'AK', 'BKL', 'DF', 'VASC', 'SCC', 'UNK'])
classes = np.argmax(prediction, axis = 1)
print(classes)

При отладке ошибка появляется в строке load_model.

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

1 Ответ

0 голосов
/ 14 июля 2020

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

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