File: convert.py

package info (click to toggle)
ggml 0.9.7-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 20,368 kB
  • sloc: cpp: 131,204; ansic: 46,699; lisp: 11,788; python: 1,591; objc: 1,395; sh: 1,042; makefile: 72
file content (32 lines) | stat: -rw-r--r-- 938 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import sys
from tensorflow import keras
import gguf

def convert(model_name):
    model = keras.models.load_model(model_name, compile=False)
    gguf_model_name = model_name + ".gguf"
    gguf_writer = gguf.GGUFWriter(gguf_model_name, "magika")

    for layer in model.layers:
        # export layers with weights
        if layer.weights:
            for weight in layer.weights:
                print(f"  [{weight.name}] {weight.shape} {weight.dtype}")
                weight_data = weight.numpy()
                gguf_writer.add_tensor(weight.name, weight_data.T)


    gguf_writer.write_header_to_file()
    gguf_writer.write_kv_data_to_file()
    gguf_writer.write_tensors_to_file()
    gguf_writer.close()
    print("Model converted and saved to '{}'".format(gguf_model_name))


if __name__ == '__main__':
    if len(sys.argv) > 1:
        model_file = sys.argv[1]
    else:
        model_file = "model.h5"

    convert(model_file)