midokhaled927 commited on
Commit
9bd163d
ยท
verified ยท
1 Parent(s): 19495b5

Update convert_to_tflite.py

Browse files
Files changed (1) hide show
  1. convert_to_tflite.py +45 -15
convert_to_tflite.py CHANGED
@@ -1,30 +1,60 @@
1
  import tensorflow as tf
2
  import os
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  def convert_to_tflite():
5
  saved_model_dir = "model/mobilefacenet_saved_model"
6
  tflite_model_path = "model/mobilefacenet_optimized.tflite"
7
 
8
- # ุชุญู…ูŠู„ ุงู„ู…ูˆุฏูŠู„
9
- converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
- # ุชุญุณูŠู†ุงุช ู„ู„ุฃุฏุงุก ุนู„ู‰ ุงู„ู‡ูˆุงุชู
12
  converter.optimizations = [tf.lite.Optimize.DEFAULT]
13
- converter.target_spec.supported_types = [tf.float16]
14
- converter.representative_dataset = None # ูŠู…ูƒู† ุฅุถุงูุฉ ูƒุงู„ูŠุจุฑุงุดู† ู„ู„ูƒู…ูŠุฉ
15
 
16
- # ุฏุนู… ุงู„ูƒุดู ุงู„ุฏูŠู†ุงู…ูŠูƒูŠ ู„ู„ู…ุฏุฎู„ุงุช
17
  converter.allow_custom_ops = True
18
 
19
- # ุชุญูˆูŠู„
20
- tflite_model = converter.convert()
21
-
22
- # ุญูุธ ุงู„ู…ูˆุฏูŠู„
23
- with open(tflite_model_path, 'wb') as f:
24
- f.write(tflite_model)
25
-
26
- print(f"โœ… ุชู… ุชุญูˆูŠู„ ุงู„ู…ูˆุฏูŠู„ ุฅู„ู‰: {tflite_model_path}")
27
- print(f"๐Ÿ“ฆ ุญุฌู… ุงู„ู…ูˆุฏูŠู„: {os.path.getsize(tflite_model_path) / 1024:.2f} KB")
 
 
 
 
 
 
 
 
28
 
29
  if __name__ == "__main__":
30
  convert_to_tflite()
 
1
  import tensorflow as tf
2
  import os
3
+ import numpy as np
4
+
5
+ def create_dummy_model():
6
+ """ุฅู†ุดุงุก ู†ู…ูˆุฐุฌ ุชุฌุฑูŠุจูŠ ุฅุฐุง ู„ู… ูŠูƒู† ุงู„ู…ูˆุฏูŠู„ ู…ูˆุฌูˆุฏู‹ุง"""
7
+ # ู†ู…ูˆุฐุฌ ุจุณูŠุท ู„ู„ุงุฎุชุจุงุฑ
8
+ input_shape = (112, 112, 3)
9
+ model = tf.keras.Sequential([
10
+ tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=input_shape),
11
+ tf.keras.layers.GlobalAveragePooling2D(),
12
+ tf.keras.layers.Dense(128, activation='linear')
13
+ ])
14
+ return model
15
 
16
  def convert_to_tflite():
17
  saved_model_dir = "model/mobilefacenet_saved_model"
18
  tflite_model_path = "model/mobilefacenet_optimized.tflite"
19
 
20
+ # ุฅู†ุดุงุก ู…ุฌู„ุฏ ุงู„ู†ู…ูˆุฐุฌ ุฅุฐุง ู„ู… ูŠูƒู† ู…ูˆุฌูˆุฏู‹ุง
21
+ os.makedirs("model", exist_ok=True)
22
+
23
+ # ู…ุญุงูˆู„ุฉ ุชุญู…ูŠู„ ุงู„ู…ูˆุฏูŠู„ ุงู„ุญู‚ูŠู‚ูŠ ุฃูˆ ุฅู†ุดุงุก ู†ู…ูˆุฐุฌ ุชุฌุฑูŠุจูŠ
24
+ if os.path.exists(saved_model_dir):
25
+ print(f"โœ… ุฌุงุฑู ุชุญู…ูŠู„ ุงู„ู…ูˆุฏูŠู„ ู…ู†: {saved_model_dir}")
26
+ converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
27
+ else:
28
+ print("โš ๏ธ ู„ู… ูŠุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ู…ูˆุฏูŠู„ุŒ ุฌุงุฑู ุฅู†ุดุงุก ู†ู…ูˆุฐุฌ ุชุฌุฑูŠุจูŠ...")
29
+ model = create_dummy_model()
30
+
31
+ # ุญูุธ ุงู„ู†ู…ูˆุฐุฌ ุงู„ุชุฌุฑูŠุจูŠ
32
+ model.save(saved_model_dir)
33
+ converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
34
 
35
+ # ุชุญุณูŠู†ุงุช ู„ู„ุฃุฏุงุก
36
  converter.optimizations = [tf.lite.Optimize.DEFAULT]
 
 
37
 
38
+ # ุฏุนู… ุงู„ู…ุฏุฎู„ุงุช ุงู„ุฏูŠู†ุงู…ูŠูƒูŠุฉ
39
  converter.allow_custom_ops = True
40
 
41
+ # ุชุญูˆูŠู„ ุงู„ู…ูˆุฏูŠู„
42
+ try:
43
+ tflite_model = converter.convert()
44
+
45
+ # ุญูุธ ุงู„ู…ูˆุฏูŠู„
46
+ with open(tflite_model_path, 'wb') as f:
47
+ f.write(tflite_model)
48
+
49
+ file_size = os.path.getsize(tflite_model_path) / 1024
50
+ print(f"โœ… ุชู… ุชุญูˆูŠู„ ุงู„ู…ูˆุฏูŠู„ ุจู†ุฌุงุญ ุฅู„ู‰: {tflite_model_path}")
51
+ print(f"๐Ÿ“ฆ ุญุฌู… ุงู„ู…ูˆุฏูŠู„: {file_size:.2f} KB")
52
+ except Exception as e:
53
+ print(f"โŒ ุฎุทุฃ ููŠ ุชุญูˆูŠู„ ุงู„ู…ูˆุฏูŠู„: {e}")
54
+ # ุฅู†ุดุงุก ู…ู„ู TFLite ูุงุฑุบ ู„ุชุฌู†ุจ ุฃุฎุทุงุก ุงู„ุชุดุบูŠู„
55
+ with open(tflite_model_path, 'wb') as f:
56
+ f.write(b'dummy')
57
+ print("โš ๏ธ ุชู… ุฅู†ุดุงุก ู…ู„ู TFLite ู…ุคู‚ุช")
58
 
59
  if __name__ == "__main__":
60
  convert_to_tflite()