|
8 | 8 | #include <sstream> |
9 | 9 | #include <fstream> |
10 | 10 | #include <vector> |
11 | | -/* |
| 11 | + |
| 12 | +#undef MIN |
| 13 | +#undef MAX |
| 14 | +#define MIN(a, b) ((a) < (b) ? (a) : (b)) |
| 15 | +#define MAX(a, b) ((a) > (b) ? (a) : (b)) |
| 16 | + |
12 | 17 | template<typename T> |
13 | 18 | static std::string to_string(const T & val) { |
14 | 19 | std::stringstream ss; |
15 | 20 | ss << val; |
16 | 21 | return ss.str(); |
17 | 22 | } |
18 | | -*/ |
| 23 | + |
19 | 24 | void gguf_ex_write_str(std::ofstream & fout, const std::string & val) { |
20 | 25 | const int32_t n = val.size(); |
21 | 26 | fout.write((const char *) &n, sizeof(n)); |
@@ -377,28 +382,28 @@ bool gguf_ex_read_2(const std::string & fname) { |
377 | 382 |
|
378 | 383 | struct gguf_file file(fname.c_str(), "rb"); |
379 | 384 | gguf_mmap data_mmap(&file, 0, false); |
| 385 | + |
380 | 386 | const int n_tensors = gguf_get_n_tensors(ctx); |
381 | 387 |
|
382 | 388 | for (int i = 0; i < n_tensors; ++i) { |
383 | | - const char * name = gguf_get_tensor_name(ctx, i); |
384 | | - const size_t offset = gguf_get_data_offset(ctx) + gguf_get_tensor_offset(ctx, i); |
| 389 | + const char * name = gguf_get_tensor_name(ctx, i); |
| 390 | + const size_t offset = gguf_get_data_offset(ctx) + gguf_get_tensor_offset(ctx, i); |
| 391 | + |
385 | 392 | struct ggml_tensor * cur = ggml_get_tensor(ctx_data, name); |
386 | 393 |
|
387 | 394 | cur->data = static_cast<char *>(data_mmap.addr) + offset; |
388 | 395 |
|
389 | 396 | // print first 10 elements |
390 | | - const float * data = (const float *) cur->data; |
| 397 | + const float * data = (const float *) cur->data; |
391 | 398 |
|
392 | 399 | printf("%s data[:10] : ", name); |
393 | | - |
394 | | - for (int j = 0; j < 10; ++j) { |
| 400 | + for (int j = 0; j < MIN(10, ggml_nelements(cur)); ++j) { |
395 | 401 | printf("%f ", data[j]); |
396 | 402 | } |
397 | | - |
398 | 403 | printf("\n\n"); |
399 | 404 | } |
400 | 405 |
|
401 | | -fprintf(stdout, "%s: ctx_data size: %zu\n", __func__, ggml_get_mem_size(ctx_data)); |
| 406 | + fprintf(stdout, "%s: ctx_data size: %zu\n", __func__, ggml_get_mem_size(ctx_data)); |
402 | 407 |
|
403 | 408 | ggml_free(ctx_data); |
404 | 409 | gguf_free(ctx); |
|
0 commit comments