(self, name: str, tensor: LazyTensor)
| 1151 | svocab.add_to_gguf(self.gguf) |
| 1152 | |
| 1153 | def add_tensor_info(self, name: str, tensor: LazyTensor) -> None: |
| 1154 | n_elements = int(np.prod(tensor.shape)) |
| 1155 | raw_dtype = getattr(tensor.data_type, 'ggml_type', None) |
| 1156 | data_type = getattr(tensor.data_type, 'quantized_type', None) or tensor.data_type.dtype |
| 1157 | data_nbytes = tensor.data_type.elements_to_bytes(n_elements) |
| 1158 | if tensor.data_type.name == "I2": |
| 1159 | # i2 * n + scale (fp32) |
| 1160 | # print(tensor.shape) |
| 1161 | # print(data_nbytes) |
| 1162 | data_nbytes = data_nbytes // 4 + 32 |
| 1163 | # print(data_nbytes) |
| 1164 | # scale_name = name.replace('.weight', '_scale.weight') |
| 1165 | # scale_shape = [1] |
| 1166 | # scale_data_type = np.float32 |
| 1167 | # scale_nbytes = 4 |
| 1168 | # self.gguf.add_tensor_info(scale_name, scale_shape, scale_data_type, scale_nbytes, raw_dtype=None) |
| 1169 | self.gguf.add_tensor_info(name, tensor.shape, data_type, data_nbytes, raw_dtype=raw_dtype) |
| 1170 | |
| 1171 | def write_meta(self) -> None: |
| 1172 | self.gguf.write_header_to_file() |
no test coverage detected