Skip to content

Commit e08b907

Browse files
Update clip.cpp
used try-catch block. validation is made by checking all the hyperparameters are are positive and logs an error if they are not. included detailed logging of hyperparameters if needed for debugging.
1 parent cba0340 commit e08b907

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

examples/llava/clip.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,6 +1270,7 @@ struct clip_ctx * clip_model_load(const char * fname, const int verbosity = 1) {
12701270
// load vision model
12711271
auto & vision_model = new_clip->vision_model;
12721272
auto & hparams = vision_model.hparams;
1273+
try{
12731274
hparams.hidden_size = get_u32(ctx, format(KEY_N_EMBD, "vision"));
12741275
hparams.n_head = get_u32(ctx, format(KEY_N_HEAD, "vision"));
12751276
hparams.n_intermediate = get_u32(ctx, format(KEY_N_FF, "vision"));
@@ -1278,11 +1279,24 @@ struct clip_ctx * clip_model_load(const char * fname, const int verbosity = 1) {
12781279
hparams.patch_size = get_u32(ctx, KEY_PATCH_SIZE);
12791280
hparams.projection_dim = get_u32(ctx, format(KEY_PROJ_DIM, "vision"));
12801281
hparams.eps = get_f32(ctx, format(KEY_LAYER_NORM_EPS, "vision"));
1281-
if (hparams.hidden_size == 0 || hparams.n_head == 0 || hparams.n_layer == 0 || hparams.n_intermediate == 0 || hparams.image_size == 0 || hparams.patch_size == 0 || hparams.projection_dim == 0 || hparams.eps == 0) {
1282-
fprintf(stderr, "Error: Invalid hyperparameter values\n");
1282+
if (hparams.hidden_size <= 0 || hparams.n_head <= 0 || hparams.n_layer <= 0 || hparams.n_intermediate <= 0 || hparams.image_size <= 0 || hparams.patch_size <= 0 || hparams.projection_dim <= 0 || hparams.eps <= 0) {
1283+
LOG_TEE("Error: Invalid hyperparameter values\n");
12831284
return false;
12841285
}
1285-
}
1286+
// Optionally log loaded hyperparameters for debugging
1287+
LOG_TEE("Loaded hyperparameters:\n");
1288+
LOG_TEE("Hidden size: %d\n", hparams.hidden_size);
1289+
LOG_TEE("Number of heads: %d\n", hparams.n_head);
1290+
LOG_TEE("Number of intermediate units: %d\n", hparams.n_intermediate);
1291+
LOG_TEE("Number of layers: %d\n", hparams.n_layer);
1292+
LOG_TEE("Image size: %d\n", hparams.image_size);
1293+
LOG_TEE("Patch size: %d\n", hparams.patch_size);
1294+
LOG_TEE("Projection dimension: %d\n", hparams.projection_dim);
1295+
LOG_TEE("Layer norm epsilon: %f\n", hparams.eps);
1296+
} catch (const std::exception& e) {
1297+
LOG_TEE("Error while loading hyperparameters: %s\n", e.what());
1298+
     }
1299+
12861300
try {
12871301
int idx = get_key_idx(ctx, KEY_IMAGE_GRID_PINPOINTS);
12881302
int n = gguf_get_arr_n(ctx, idx);

0 commit comments

Comments
 (0)