
# Tento skript slouzi ke konverzi TensorFlow modelu (pripona .h5) na model TensorFlow Lite (pripona .tflite) pro podstatne rychlejsi beh aplikace diky optimalizaci pro mobilni aplikace

# spoustet ve virtualnim prostredi, kde je nainstalovany tensorflow 2.1 nebo 2.2, nikoliv 2.0, kde to nefunguje 
# spoustet z příkazové řádky, pri spusteni z editoru hlasi chybu

import os
import tensorflow as tf
from tensorflow.keras.models import load_model



nazev = "ce_power"              # adresar konvertovaneho modelu

DATADIR = "./" + nazev

os.chdir(DATADIR)               # zmena adresare


for soubor in os.listdir():     # nalezeni modelu, mel jsem v adresari vzdy pouze jeden model, proto ho nebylo problem najit podle pripony .h5, jinak je treba urcit explicitne
    if soubor.endswith('.h5'):
        #print(soubor)
        break


model = load_model(soubor)      # nahrani modelu

soubor = soubor[:-3] + '.tflite'    # vytvoreni nazvu - zmena pripony .h5 za .tflite

converter = tf.lite.TFLiteConverter.from_keras_model(model)     
tflite_model = converter.convert()                              # samotna konverze
open(soubor, "wb").write(tflite_model)                          # ulozeni modelu

