Я пытался скомпилировать файл py в двоичный файл, который просто считывает модель из файла json и прогнозирует результат через импортированную модель. Теперь проблема в том, что когда я пытаюсь скомпилировать программу через pyinstaller, результирующий файл составляет около 290 МБ, поскольку он пытается скомпилировать весь пакет tenorflow и его нежелательные зависимости. Не говоря уже о том, что он очень-очень медленно запускается, поскольку пытается извлечь файлы.
Как вы можете видеть, это просто простой код, который проходит через папку с изображениями и идентифицирует их как мем или содержимое без мемов для очистки моей папки WhatsApp.
import os
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import model_from_json
import shutil
BATCH_SIZE = 8
SHAPE = (150,150,3)
p = input("Enter path of folder to extract memes from")
p = p.replace("'","")
p = p.replace('"','')
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
model = model_from_json(loaded_model_json)
model.load_weights('weights.best.hdf5')
test_datagen = ImageDataGenerator(rescale=1./255)
generator = test_datagen.flow_from_directory(
p,
target_size=SHAPE[:-1],
batch_size=BATCH_SIZE,
class_mode=None,
shuffle=False)
pred = model.predict_generator(generator)
# print(pred)
# print(model.summary())
pred[pred>0.5] = 1
pred[pred<=0.5] = 0
d = ["garbage","good"]
for i in range(len(pred)):
filename = generator.filenames[i].split('\\')[1]
if(pred[i][0] == 0):
shutil.move(generator.filepaths[i],os.path.join(os.path.join('test',str(int(pred[i][0]))),filename))
Итак, мой вопрос в том, есть ли альтернатива функции model.predict, которая может быть намного легче, чем у одного тензорного потока, поскольку я не хочу включить в свой дистрибутив весь пакет tenorflow размером 600 МБ.