@@ -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