Download model/__init__.py from stumpferWinkel/grasp: direct link, hf CLI and curl.
- Browser
- Download file 10.8 kB
-
https://huggingface.co/stumpferWinkel/grasp/resolve/main/model/__init__.py
- Command line
-
hf download hf://stumpferWinkel/grasp/model/__init__.py
-
curl -L -o __init__.py https://huggingface.co/stumpferWinkel/grasp/resolve/main/model/__init__.py
10.8 kB
| from .crog import CROG | |
| from .ssg import SSG | |
| from loguru import logger | |
| def build_crog(args): | |
| model = CROG(args) | |
| backbone = [] | |
| head = [] | |
| for k, v in model.named_parameters(): | |
| if k.startswith('backbone') and 'positional_embedding' not in k: | |
| backbone.append(v) | |
| else: | |
| head.append(v) | |
| logger.info('Backbone with decay={}, Head={}'.format(len(backbone), len(head))) | |
| param_list = [{ | |
| 'params': backbone, | |
| 'initial_lr': args.lr_multi * args.base_lr | |
| }, { | |
| 'params': head, | |
| 'initial_lr': args.base_lr | |
| }] | |
| return model, param_list | |
| def build_ssg(args): | |
| model = SSG(args) | |
| return model, model.parameters() | |
| def build_net(args): | |
| network_name = args.network_name.lower() | |
| if network_name == 'legrconvnet': | |
| from .legrconv import CORE | |
| elif network_name == 'legrconvnet4x': | |
| from .legrconv4x import CORE | |
| elif network_name == 'legrconvnet4x_update1': | |
| from .legrconv4x_update1 import CORE | |
| elif network_name == 'legrconvnet4x_coord': | |
| from .legrconv4x_coordconv import CORE | |
| elif network_name == 'legrconvnet4x_dcn': | |
| from .legrconv4x_dcn import CORE | |
| elif network_name == 'legrconvnet4x_tacmt': | |
| from .legrconv4x_TACMT import CORE | |
| elif network_name == 'legrconv4x_dcn_txtaware': | |
| from .legrconv4x_dcn_txtaware import CORE | |
| elif network_name == 'legrconv4x_film1': | |
| from .legrconv4x_film1 import CORE | |
| elif network_name == 'legrconv4x_film2': | |
| from .legrconv4x_film2 import CORE | |
| elif network_name == 'legrconv4x_film2_refine': | |
| from .legrconv4x_film2_refine import CORE | |
| elif network_name == 'legrconv4x_film3': | |
| from .legrconv4x_film3 import CORE | |
| elif network_name == 'legrconv4x_llava': | |
| from .legrconv4x_llava import CORE | |
| elif network_name == 'legrconv4x_llava_fixed': | |
| from .legrconv4x_llava_fixed import CORE | |
| elif network_name == 'legrconv4x_llava_v2': | |
| from .legrconv4x_llava_v2 import CORE | |
| elif network_name == 'legrconv4x_llava_v2_nomask': | |
| from .legrconv4x_llava_v2_nomask import CORE | |
| elif network_name == 'legrconv4x_llava_v2_new': | |
| from .legrconv4x_llava_v2_new import CORE | |
| elif network_name == 'legrconv4x_llava_v2_c': | |
| from .legrconv4x_llava_v2_c import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_honeybee_aligned', | |
| 'llava_honeybee_aligned', | |
| 'honeybee_aligned_grasp', | |
| ): | |
| from .legrconv4x_llava_honeybee_aligned import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_honeybee_aligned_3dcoord_newtrans', | |
| 'llava_honeybee_aligned_3dcoord_newtrans', | |
| 'honeybee_aligned_grasp_3dcoord_newtrans', | |
| ): | |
| from .legrconv4x_llava_honeybee_aligned_3dcoord_newtrans import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_honeybee_aligned_native_rgb', | |
| 'llava_honeybee_aligned_native_rgb', | |
| 'honeybee_aligned_grasp_no_cabs', | |
| ): | |
| from .legrconv4x_llava_honeybee_aligned_native_rgb import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_maple_generalized_rgb', | |
| 'llava_maple_generalized_rgb', | |
| 'maple_generalized_rgb', | |
| ): | |
| from .legrconv4x_llava_maple_generalized_rgb import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_honeybee_aligned_dualsoft', | |
| 'legrconv_llava_honeybee_aligned_dualsoft', | |
| 'llava_honeybee_aligned_dualsoft', | |
| 'honeybee_aligned_dualsoft_rgb', | |
| ): | |
| from .legrconv4x_llava_honeybee_aligned_dualsoft import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_statichead', 'v2_c_statichead'): | |
| from .legrconv4x_llava_v2_c_statichead import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_customenc_statichead', 'v2_c_customenc_statichead'): | |
| from .legrconv4x_llava_v2_c_customenc_statichead import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_standard_statichead', 'v2_c_standard_statichead'): | |
| from .legrconv4x_llava_v2_c_standard_statichead import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_v2_c_standard_statichead_3dcoord_newtrans', | |
| 'v2_c_standard_statichead_3dcoord_newtrans', | |
| ): | |
| from .legrconv4x_llava_v2_c_standard_statichead_3dcoord_newtrans import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_standard_dynamichead', 'v2_c_standard_dynamichead'): | |
| from .legrconv4x_llava_v2_c_standard_dynamichead import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_v2_c_standard_statichead_clip_lora_3dcoord_newtrans', | |
| 'v2_c_standard_statichead_clip_lora_3dcoord_newtrans', | |
| ): | |
| from .legrconv4x_llava_v2_c_standard_statichead_clip_lora_3dcoord_newtrans import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_3dcoord_newtrans', 'v2_c_3dcoord_newtrans'): | |
| from .legrconv4x_llava_v2_c_3dcoord_newtrans import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_v2_c_standard_statichead_clip_lora', | |
| 'v2_c_standard_statichead_clip_lora', | |
| ): | |
| from .legrconv4x_llava_v2_c_standard_statichead_clip_lora import CORE | |
| elif network_name == 'legrconv4x_molmo_v2': | |
| from .legrconv4x_molmo_v2 import CORE | |
| elif network_name == 'legrconv4x_molmo_v2_c': | |
| from .legrconv4x_molmo_v2_c import CORE | |
| elif network_name in ('legrconv4x_molmo_v2_c_lora', 'molmo_v2_c_lora'): | |
| from .legrconv4x_molmo_v2_c_lora import CORE | |
| elif network_name == 'legrconv4x_qwen_vl_v2': | |
| from .legrconv4x_qwen_vl_v2 import CORE | |
| elif network_name == 'legrconv4x_qwen_vl_v2_c': | |
| from .legrconv4x_qwen_vl_v2_c import CORE | |
| elif network_name == 'legrconv4x_qwen_vl_v2_c_lora': | |
| from .legrconv4x_qwen_vl_v2_c_lora import CORE | |
| elif network_name == 'legrconv4x_qwen_vl_v2_c_lora_newtrans': | |
| from .legrconv4x_qwen_vl_v2_c_lora_newtrans import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_3dcoord', 'v2_c_3dcoord'): | |
| from .legrconv4x_llava_v2_c_3dcoord import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_3dcoord_frontcoord', 'v2_c_3dcoord_frontcoord'): | |
| from .legrconv4x_llava_v2_c_3dcoord import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_multigeo', 'v2_c_multigeo'): | |
| from .legrconv4x_llava_v2_c_multigeo import CORE | |
| elif network_name in ('legrconv4x_llava_v2_c_singlegeo', 'v2_c_singlegeo'): | |
| from .legrconv4x_llava_v2_c_singlegeo import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_v2_c_standard_statichead_clip_3dcoord_newtrans', | |
| 'v2_c_standard_statichead_clip_3dcoord_newtrans', | |
| ): | |
| from .legrconv4x_llava_v2_c_standard_statichead_clip_3dcoord_newtrans import CORE | |
| elif network_name == 'legrconv4x_llava_v2_d': | |
| from .legrconv4x_llava_v2_d import CORE | |
| elif network_name == 'legrconv4x_llava_v2_refine': | |
| from .legrconv4x_llava_v2_refine import CORE | |
| elif network_name == 'legrconv4x_llava_v2_refinemix': | |
| from .legrconv4x_llava_v2_refinemix import CORE | |
| elif network_name == 'legrconv4x_llava_v2_maple': | |
| from .legrconv4x_llava_v2_maple import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_v2_maple_standard_statichead', | |
| 'maple_standard_statichead', | |
| 'legrconv4x_llava_v2_maple_standard_statichead_clip', | |
| 'maple_standard_statichead_clip', | |
| ): | |
| from .legrconv4x_llava_v2_maple_standard_statichead import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_v2_maple_standard_statichead_3dcoord_newtrans', | |
| 'maple_standard_statichead_3dcoord_newtrans', | |
| 'legrconv4x_llava_v2_maple_standard_statichead_clip_3dcoord_newtrans', | |
| 'maple_standard_statichead_clip_3dcoord_newtrans', | |
| ): | |
| from .legrconv4x_llava_v2_maple_standard_statichead_3dcoord_newtrans import CORE | |
| elif network_name in ( | |
| 'legrconv4x_llava_v2_maple_3dcoord_newtrans', | |
| 'legrconv4x_llava_v2_maple_depthcoord_newtrans', | |
| 'maple_3dcoord_newtrans', | |
| ): | |
| from .legrconv4x_llava_v2_maple_3dcoord_newtrans import CORE | |
| elif network_name == 'legrconv4x_llava_v2_maple_soft': | |
| from .legrconv4x_llava_v2_maple_soft import CORE | |
| elif network_name == 'legrconv4x_llava_v2_maple_refine': | |
| from .legrconv4x_llava_v2_maple_refine import CORE | |
| elif network_name == 'legrconv4x_llava_v2_maple_refine_split': | |
| from .legrconv4x_llava_v2_maple_refine_split import CORE | |
| elif network_name == 'legrconv4x_llava_v2_geo': | |
| from .legrconv4x_llava_v2_geo import CORE | |
| elif network_name == 'legrconv4x_llava_v2_geo2': | |
| from .legrconv4x_llava_v2_geo2 import CORE | |
| elif network_name == 'legrconv4x_llava_v2_geo3': | |
| from .legrconv4x_llava_v2_geo3 import CORE | |
| elif network_name == 'legrconv4x_llava_v2_geo4': | |
| from .legrconv4x_llava_v2_geo4 import CORE | |
| elif network_name == 'legrconv4x_llava_lora': | |
| from .legrconv4x_llava_lora import CORE | |
| elif network_name == 'legrconv4x_llava_v2_c_lora': | |
| from .legrconv4x_llava_v2_c_lora import CORE | |
| elif network_name == 'legrconv4x_llava_v2_c_lora_newtrans': | |
| from .legrconv4x_llava_v2_c_lora_newtrans import CORE | |
| elif network_name == 'legrconv4x_llava_v2_c_lora_3dcoord_newtrans': | |
| from .legrconv4x_llava_v2_c_lora_3dcoord_newtrans import CORE | |
| elif network_name == 'graspanything_withmask': | |
| from .legrconv4x_llava_v2_ga_wmask import CORE | |
| elif network_name == 'graspanything_withoutmask': | |
| from .legrconv4x_llava_v2_ga_womask import CORE | |
| elif network_name in ('crog', 'crog_r50'): | |
| from .crog import CROG as CORE | |
| else: | |
| raise NotImplementedError('Network {} is not implemented'.format(network_name)) | |
| model = CORE(args) | |
| # Special handling for models with custom parameter management | |
| if hasattr(model, 'get_trainable_params'): | |
| # Models like llava_lora handle their own parameter groups | |
| param_list = model.get_trainable_params() | |
| else: | |
| # Default behavior for other models | |
| # Freeze backbone parameters | |
| for name, param in model.named_parameters(): | |
| if name.startswith('backbone'): | |
| param.requires_grad = False | |
| backbone = [] | |
| head = [] | |
| for k, v in model.named_parameters(): | |
| if not v.requires_grad: | |
| continue | |
| if k.startswith('backbone') and 'positional_embedding' not in k: | |
| backbone.append(v) | |
| else: | |
| head.append(v) | |
| logger.info('Backbone with decay={}, Head={}'.format(len(backbone), len(head))) | |
| param_list = [ { | |
| 'params': head, | |
| 'initial_lr': args.base_lr | |
| }] | |
| return model, param_list | |