(self, name: str, tensor: LazyTensor)
| 1220 | svocab.add_to_gguf(self.gguf) |
| 1221 | |
| 1222 | def add_tensor_info(self, name: str, tensor: LazyTensor) -> None: |
| 1223 | n_elements = int(np.prod(tensor.shape)) |
| 1224 | raw_dtype = getattr(tensor.data_type, 'ggml_type', None) |
| 1225 | data_type = getattr(tensor.data_type, 'quantized_type', None) or tensor.data_type.dtype |
| 1226 | data_nbytes = tensor.data_type.elements_to_bytes(n_elements) |
| 1227 | if tensor.data_type.name == "I2": |
| 1228 | # i2 * n + scale (fp32) |
| 1229 | # print(tensor.shape) |
| 1230 | # print(data_nbytes) |
| 1231 | data_nbytes = data_nbytes // 4 + 32 |
| 1232 | # print(data_nbytes) |
| 1233 | # scale_name = name.replace('.weight', '_scale.weight') |
| 1234 | # scale_shape = [1] |
| 1235 | # scale_data_type = np.float32 |
| 1236 | # scale_nbytes = 4 |
| 1237 | # self.gguf.add_tensor_info(scale_name, scale_shape, scale_data_type, scale_nbytes, raw_dtype=None) |
| 1238 | self.gguf.add_tensor_info(name, tensor.shape, data_type, data_nbytes, raw_dtype=raw_dtype) |
| 1239 | |
| 1240 | def write_meta(self) -> None: |
| 1241 | self.gguf.write_header_to_file() |
no test coverage detected