
    j]              !       0   U d Z ddlZddlmZ ddlZddlZddlZddlZddlm	Z	m
Z
mZmZ ddlmZ ddlmZ ddlmZ ddlZddlmc mZ ddlmc mZ ddlmc mZ ddlmc mZ ddlm c m!Z! ddl"m c m#Z# ddl$m c m%Z% ddl&m c m'Z' ddl(m)c m*Z+ ddl,m)c m-Z. ddl/m0c m1Z1 ddl2m0c m3c m4Z4 ddl5m0c m3c m6Z6 ddl7m0c m8Z9 ddl:m0c m;Z; ddl<m=Z> ej?        Z?ee@d<   ejA        jB        ZBee@d<    ejC        d	           G d
 d                      ZD ejC        d	           G d d                      ZE G d de          ZF ejC        d	           G d deF                      ZG ejC        d	           G d dejH                              ZI ejC        d	           G d deI                      ZJ ejC        d	           G d deI                      ZK ejC        d	           G d deI                      ZL ejC        d	           G d deI                      ZM ejC        d	           G d deI                      ZN ejC        d	           G d deI                      ZO ejC        d	           G d  d!eI                      ZP ejC        d	           G d" d#                      ZQ eQd$ ejR                     eL eDd%&          '          d(g d)i*           eQd+ ejR        d,           eL eDd%&          '          d(g d)i*           eQd- ejR                     eL eDd%&          d./          d(g d)i*           eQd0 ejR                     eL eDd%&          d1/          d(g d)i*           eQd2 ejR        d34           eK eDd5&          d6  eEd7          8          9           eQd: ejS        d;d3<           eK eDd5&          d=  eEd7          8          9           eQd> ejR        d?d@           eK eDd5&          dA  eEd7          8          9           eQdB ejR                     eMdC eEd7          dD           e;jT        dE          dFG           eQdH ejR        dIdJK           eMdC eEd7          dD           e;jT        dE          dF ejR        dIdJK          U                                dL           eQdM ejS        dNd3dOP           eMdC eEd7          dD           e;jT        dQ          dFG           eQdR ejS        dNd3dOdIS           eMdC eEd7          dD           e;jT        dQ          dF ejS        dNd3dOdIS          U                                dL           eQdT ejR        dd3dUV           eMdC eEd7          dUD          dW e9jV        dXdYdZdY[           e9jW        d\]          d^ e;jT        d_          d`dFa
  
         eQdb ejR                     eLdc eDddd%e          df e>jX         e>jY        dgdhdidjdkdldm          gn          o           e;jT        dE          dpG           eQdq ejR        d,           eLdc eDdrd%e          df e>jX         e>jY        dgdhdidjdkdldm          gn          o           e;jT        d_          dpdst           eQdu ejS        d;dvdOP           eOd5dwe1jZ        j[        x           e;jT        dQ           e9jV        dydYdZdY[          dzdWd{d|dpd}           eQd~ ejR        dddv           eOd5de1jZ        j[         eDdd5e                     e;jT        d_           e9jV        dydYdZdY[          dzdWd{d|dXd}           eQd ejR        dddv           ePd eEd7           eDdd5e                     e;jT        d          dpdt           eQd ejR                     eLdddU           e;jT        dE          dpG           eQd ejR        d,           eNddU eEd7                     e;jT        d_          dFdsd;           eQd ejR        ddI           eNd eEd7                     e;jT        d_          dFdsd; ejR        ddI          U                                d	  	         eQd ejR        dd@           eNddU eDd&           eEd7                     e;jT        d_          dWdzd{dXdX	  	         eQd eJ            d ejR        ddK          d{ddd3dU	  	         eQd eJ            d ejR        ddK           e;jT        d          ddd3dU	  	         eQd ejR        ddd           eJ            dd3dddU          g e6j\                     e4j]                    Z^ e_d e^D                        e_e^          k    r e`d          d e^D             ZadeQfdZbdecdeQfdZddS )z/See _CONFIGS for the list of available configs.    N)Sequence)AnyLiteralProtocol	TypeAlias)override	ModelTypeFilterT)frozenc                   <    e Zd ZU dZdZedz  ed<   dZedz  ed<   dS )AssetsConfigaQ  Determines the location of assets (e.g., norm stats) that will be used to set up the data pipeline.

    These assets will be replicated inside the checkpoint under the `assets/asset_id` directory.

    This can be used to load assets from a different checkpoint (e.g., base model checkpoint) or some other
    centralized location. For example, to load the norm stats for the Trossen robot from the base model checkpoint
    during fine-tuning, use:

    ```
    AssetsConfig(
        assets_dir="gs://openpi-assets/checkpoints/pi0_base/assets",
        asset_id="trossen",
    )
    ```
    N
assets_dirasset_id)__name__
__module____qualname____doc__r   str__annotations__r        7/home/robot-lab/Pi0.5_yam/src/openpi/training/config.pyr   r   &   sH          $ "Jd
!!!  HcDjr   r   c                      e Zd ZU dZedz  ed<   dZedz  ed<   dZeee	j
        f         dz  ed<    ej        e	j                  Ze	j        ed<    ej        e	j                  Ze	j        ed<    ej        e	j                  Ze	j        ed<   d	Zeed
<   dZee         ed<   d	Zeed<   dZedz  ed<   dZej        dz  ed<   dZeej                 ed<   dS )
DataConfigNrepo_idr   
norm_statsdefault_factoryrepack_transformsdata_transformsmodel_transformsFuse_quantile_norm)actionsaction_sequence_keysprompt_from_taskrlds_data_diraction_spacer   datasets)r   r   r   r   r   r   r   r   dict_transforms	NormStatsdataclassesfieldGroupr   r    r!   r"   boolr$   r   r%   r&   r'   droid_rlds_datasetDroidActionSpacer(   RLDSDatasetr   r   r   r   r   A   sY         GS4ZHcDj:>JS+//047>>> ,=;+<[M^+_+_+_{(___ *;):;K\)])])]O[&]]]*;+*;KL]*^*^*^k'^^^#t###
 +7(3-666 #d""" !%M3:$$$?CL$5<CCC9;Hh)56;;;;;r   r   c                   2    e Zd Zdej        dej        fdZdS )GroupFactorymodel_configreturnc                     dS )zCreate a group.Nr   )selfr5   s     r   __call__zGroupFactory.__call__g         r   N)r   r   r   _modelBaseModelConfigr*   r.   r9   r   r   r   r4   r4   f   s<        V%; @Q      r   r4   c                   L    e Zd ZU dZdZedz  ed<   dej        de	j
        fdZdS )ModelTransformFactoryz1Creates model transforms for standard pi0 models.Ndefault_promptr5   r6   c                 R   |j         xt          j        j        k    r t	          j        t	          j        | j                  t	          j        dd          t	          j	        t          j        |j                            t	          j        |j                  g          S xt          j        j        k    r t!          |t"          j                  sJ t	          j        t	          j        | j                  t	          j        dd          t	          j	        t          j        |j                  |j                  t	          j        |j                  g          S t          j        j        k    r|j        t          j        n|j        }|j        i n|j        }t	          j        t	          j        | j                  t	          j        dd          t	          j         ||j        fi |          gt	          j         ||j        fi ||j        |j                  g          S d S )N   inputs)discrete_state_input)action_horizon
action_dimrC   outputs)
model_typer;   r	   PI0r*   r.   InjectDefaultPromptr?   ResizeImagesTokenizePrompt
_tokenizerPaligemmaTokenizermax_token_lenPadStatesAndActionsrF   PI05
isinstance
pi0_config	Pi0ConfigrD   PI0_FASTfast_model_tokenizerFASTTokenizerfast_model_tokenizer_kwargsTokenizeFASTInputsExtractFASTActionsrE   )r8   r5   tokenizer_clstokenizer_kwargss       r   r9   zModelTransformFactory.__call__r   s>   %%!%%%%"(#78KLL#0c::#2&9,:TUU  $78OPP	 	 	 	 '!&&&&!,
0DEEEEE"(#78KLL#0c::#2&9,:TUU1=1R   $78OPP
 
 
 
 !*** $8@ ,,%:  'BJBBP\Px ! #(#78KLL#0c::#6)M,*DYYHXYY  $6)M,*DYYHXYY+7+F'3'>      +*r   )r   r   r   r   r?   r   r   r;   r<   r*   r.   r9   r   r   r   r>   r>   k   sZ         ;; "&NC$J%%%2V%; 2@Q 2 2 2 2 2 2r   r>   c                   6   e Zd ZU ej        Zeed<    ej	        e
          Ze
ed<   dZej        j        edz           ed<   ej        dej        dej        defd	            Zdej        dej        defd
Zdej        dedz  deeej        f         dz  fdZdS )DataConfigFactoryr   r   assetsNbase_configassets_dirsr5   r6   c                     dS )zCreate a data config.Nr   r8   rb   r5   s      r   createzDataConfigFactory.create   r:   r   c           
      8   | j         t          j        ur| j         nd }| j        j        p|}t          j        | j        pt                      ||| 	                    t          j        | j        j        p|          |          |j        t          j        k              S )N)r   r   r   r"   )r   tyroMISSINGr`   r   r,   replacera   r   _load_norm_statsepathPathr   rI   r	   rJ   )r8   rb   r5   r   r   s        r   create_base_configz$DataConfigFactory.create_base_config   s    "&,dl"B"B$,,;'27",
,,UZ8N8]R]-^-^`hii*5F
 
 
 	
r   r   r   c                    |d S 	 t          ||z            }t          j        t          j        |                    }t          j        d|            |S # t          $ r t          j        d| d           Y nw xY wd S )NzLoaded norm stats from zNorm stats not found in z, skipping.)r   
_normalizeload	_downloadmaybe_downloadlogginginfoFileNotFoundError)r8   r   r   data_assets_dirr   s        r   rj   z"DataConfigFactory._load_norm_stats   s    4	R!*x"788O#)A/)R)RSSJLD?DDEEE  	R 	R 	RLPOPPPQQQQQ	Rts   AA "A<;A<)r   r   r   rg   rh   r   r   r   r,   r-   r   r`   ra   confSuppressr   abcabstractmethodpathlibrl   r;   r<   re   rm   rk   r)   r*   r+   rj   r   r   r   r_   r_      s         <GS,;,\JJJFLJJJ9=K#J$56===$', $f>T $Yc $ $ $ $	
gl 	
&J` 	
eo 	
 	
 	
 	

5: 
t 
PTUXZeZoUoPpswPw 
 
 
 
 
 
r   r_   c                   V    e Zd ZU dZeed<   edej        de	j
        defd            ZdS )FakeDataConfigfaker   rb   r5   r6   c                 ,    t          | j                  S )N)r   )r   r   rd   s      r   re   zFakeDataConfig.create   s    $,////r   N)r   r   r   r   r   r   r   r{   rl   r;   r<   r   re   r   r   r   r}   r}      s_         GS0', 0f>T 0Yc 0 0 0 X0 0 0r   r}   c                       e Zd ZU  ej        e          Zej        j	        e         e
d<    ej        e          Zej        j	        e         e
d<   edej        dej        defd            ZdS )	SimpleDataConfigr   r    r!   rb   r5   r6   c                     t          j        |                     ||          |                     |          |                     |                    S )N)r    r!   )r,   ri   rm   r    r!   rd   s      r   re   zSimpleDataConfig.create   sQ    "##K>> 00>>!22<@@
 
 
 	
r   N)r   r   r   r,   r-   r4   r    rg   rw   rx   r   r>   r!   r   r{   rl   r;   r<   r   re   r   r   r   r   r      s          9J8IZf8g8g8gOTY'5ggg9J9J[p9q9q9qdi(6qqq
', 
f>T 
Yc 
 
 
 X
 
 
r   r   c            
       0   e Zd ZU dZeed<   dZedz  ed<   dZeed<    e	j
         ej         ej        ddidd	d
          g                    Zej        j        ej                 ed<   dZee         ed<   edej        dej        defd            ZdS )LeRobotAlohaDataConfigTuse_delta_joint_actionsNr?   adapt_to_picam_highzobservation.images.topobservation.stateactionimagesstater#   rB   )defaultr   r   r$   rb   r5   r6   c                    t          j        t          j        | j                  gt          j        | j                  g          }| j        rTt          j        dddd          }|                    t          j	        |          gt          j
        |          g          } t          | j                  |          }t          j        |                     ||          | j        ||| j                  S )N)r   rG      r?   r   r    r!   r$   )r*   r.   aloha_policyAlohaInputsr   AlohaOutputsr   make_bool_maskpushDeltaActionsAbsoluteActionsr>   r?   r,   ri   rm   r   r$   )r8   rb   r5   r    delta_action_maskr!   s         r   re   zLeRobotAlohaDataConfig.create  s   %+ ,9IJJJK!.4;KLLLM
 
 
 ' 	 + :1b!R H H-22#01BCCD$45FGGH 3  O
 U0@STTTUabb"##K>>"4+-!%!:
 
 
 	
r   )r   r   r   r   r/   r   r?   r   r   r,   r-   r*   r.   RepackTransformr   rg   rw   rx   r$   r   r   r{   rl   r;   r<   r   re   r   r   r   r   r      s%         %)T(((!%NC$J%%% K @Q{?P!!++#-/G"H!4#+  

 

 

@ @ @ty)+*;<    +6(3-555
', 
f>T 
Yc 
 
 
 X
 
 
r   r   c                   Z    e Zd ZU dZdZeed<   edej	        de
j        defd            ZdS )	LeRobotLiberoDataConfigz
    This config is used to configure transforms that are applied at various parts of the data pipeline.
    For your own dataset, you can copy this class and modify the transforms to match your dataset based on the
    comments below.
    Fextra_delta_transformrb   r5   r6   c           
         t          j        t          j        dddddd          g          }t          j        t          j        |j                  gt          j                    g	          }| j        rRt          j        d
d          }|	                    t          j
        |          gt          j        |          g	          } t                      |          }t          j        |                     ||          |||          S )Nimagewrist_imager   r#   prompt)observation/imageobservation/wrist_imageobservation/stater#   r   rB   rI   rG   r   r   r   r    r!   )r*   r.   r   libero_policyLiberoInputsrI   LiberoOutputsr   r   r   r   r   r>   r,   ri   rm   r8   rb   r5   repack_transformr    r   r!   s          r   re   zLeRobotLiberoDataConfig.create$  s8    ',+-43@-4#,"*  

 
 
( &+!.,:QRRRS"0223
 
 
" % 	 + :1b A A-22#01BCCD$45FGGH 3  O 3022<@@ "##K>>.+-	
 
 
 	
r   N)r   r   r   r   r   r/   r   r   r{   rl   r;   r<   r   re   r   r   r   r   r     sl           #(4'''?
', ?
f>T ?
Yc ?
 ?
 ?
 X?
 ?
 ?
r   r   c                   n    e Zd ZU dZdZeed<   dZedz  ed<   e	de
j        dej        defd	            ZdS )
LeRobotYAMDataConfiga  Config for YAM bimanual robot dataset.

    State/action: 14D joint positions [left_joint(6), left_grip(1), right_joint(6), right_grip(1)]
    Cameras: head, left_wrist, right_wrist
    Actions are absolute joint targets; converted to delta (except grippers) for training.
    Tr   Nr?   rb   r5   r6   c                 .   t          j        t          j        ddddddd          g          }t          j        t          j        |j        	          gt          j                    g
          }| j        rTt          j        dddd          }|	                    t          j
        |          gt          j        |          g
          } t          | j                  |          }t          j        |                     ||          |||d          S )Nzobservation.images.scene_cameraz$observation.images.left_wrist_cameraz%observation.images.right_wrist_camerar   r   r   )zobservation/image_headzobservation/image_left_wristzobservation/image_right_wristr   r#   r   rB   r   rG   r   r   r   r   r   )r*   r.   r   
yam_policy	YAMInputsrI   
YAMOutputsr   r   r   r   r   r>   r?   r,   ri   rm   r   s          r   re   zLeRobotYAMDataConfig.creates  sJ    ',+2S8^9`-@#+"* 	 	
 
 
 &+(L4KLLLM*,,-
 
 
 ' 	 + :1b!R H H-22#01BCCD$45FGGH 3  O
 U0@STTTUabb"##K>>.+-!,
 
 
 	
r   )r   r   r   r   r   r/   r   r?   r   r   r{   rl   r;   r<   r   re   r   r   r   r   r   g  s           %)T(((!%NC$J%%%'
', '
f>T '
Yc '
 '
 '
 X'
 '
 '
r   r   c                       e Zd ZU dZdZedz  ed<   dZej	        dz  ed<    ej
        dddd	          fZeej
                 ed
<   edej        dej        defd            ZdS )RLDSDroidDataConfigzk
    Config for training on DROID, using RLDS data format (for efficient training on larger datasets).
    Nr&   r'   droidz1.0.1      ?z8gs://openpi-assets/droid/droid_sample_ranges_v1_0_1.json)nameversionweightfilter_dict_pathr(   rb   r5   r6   c                    t          j        t          j        ddddddd          g          }t          j        t          j        |j        	          gt          j                    g
          }| j        t          j	        j
        k    rRt          j        dd          }|                    t          j        |          gt          j        |          g
          } t                      |          }| j        
J d            t#          j        |                     ||          |||| j        | j        | j                  S )Nr   r   observation/joint_positionobservation/gripper_positionr#   r   )!observation/exterior_image_1_leftobservation/wrist_image_leftr   r   r#   r   rB   r   rG      r   z/Need to set rlds data dir for RLDS data loader.)r   r    r!   r&   r'   r(   )r*   r.   r   droid_policyDroidInputsrI   DroidOutputsr'   r0   r1   JOINT_POSITIONr   r   r   r   r>   r&   r,   ri   rm   r(   r   s          r   re   zRLDSDroidDataConfig.create  sj   &,+=P8Q6R8V#,"* 	 	
 
 
 &+ ,8OPPPQ!.001
 
 

  2 C RRR + :1b A A-22#01BCCD$45FGGH 3  O
 3022<@@!--/`---"##K>>.+-,*]
 
 
 	
r   )r   r   r   r   r&   r   r   r'   r0   r1   r2   r(   r   r   r{   rl   r;   r<   r   re   r   r   r   r   r     s           !%M3:$$$?CL$5<CCC 	'&W		
 	
 	
:Hh)56    )
', )
f>T )
Yc )
 )
 )
 X)
 )
 )
r   r   c                   J    e Zd ZdZedej        dej        de	fd            Z
dS )LeRobotDROIDDataConfigz
    Example data config for custom DROID dataset in LeRobot format.
    To convert your custom DROID dataset (<10s of hours) to LeRobot format, see examples/droid/convert_droid_data_to_lerobot.py
    rb   r5   r6   c                 j   t          j        t          j        dddddddd          g	          }t          j        t          j        |j        
          gt          j                    g          } t                      |          }t          j	        | 
                    ||          |||          S )Nexterior_image_1_leftexterior_image_2_leftwrist_image_leftjoint_positiongripper_positionr#   r   )r   z!observation/exterior_image_2_leftr   r   r   r#   r   rB   r   rG   r   )r*   r.   r   r   r   rI   r   r>   r,   ri   rm   )r8   rb   r5   r   r    r!   s         r   re   zLeRobotDROIDDataConfig.create  s    &,+=T=T8J6F8J#,"* 
 

 
 
  &+ ,8OPPPQ!.001
 
 
 3022<@@"##K>>.+-	
 
 
 	
r   N)r   r   r   r   r   r{   rl   r;   r<   r   re   r   r   r   r   r     sY         
 
', 
f>T 
Yc 
 
 
 X
 
 
r   r   c                      e Zd ZU ej        j        e         ed<   dZeed<   ej	        Z
eed<    ej        ej                  Zej        ed<    ej        ej                  Zej        ed<   dZedz  ed	<   d
Zed         ed<    ej        ej                  Zej        ed<    ej        ej                  Zej        ed<   dZ e!dz  ed<    ej        e"j#                  Z$ej        j        e%         ed<    ej        e&          Z'e(ed<   dZ)eed<   dZ*eed<   dZ+e,ed<   dZ-e,ed<   dZ.e,ed<   dZ/e,ed<   dZ0e,ed <   d!Z1e,ed"<   d#Z2e,dz  ed$<   d%Z3e4ed&<   d%Z5e4ed'<   d(Z6e4ed)<   dZ7e8ee9f         dz  ed*<   d+Z:e,ed,<   e;d-e<j=        fd.            Z>e;d-e<j=        fd/            Z?e;d-e"j@        j%        fd0            ZAd2d1ZBdS )3TrainConfigr   openpiproject_nameexp_namer   modelweight_loaderNpytorch_weight_pathbfloat16)r   float32pytorch_training_precisionlr_schedule	optimizergGz?	ema_decayfreeze_filterdataz./assetsassets_base_dirz./checkpointscheckpoint_base_dir*   seed    
batch_size   num_workers0u  num_train_stepsd   log_interval  save_interval  keep_periodF	overwriteresumeTwandb_enabledpolicy_metadata   fsdp_devicesr6   c                 h    t          j        | j                  | j        z                                  S )z)Get the assets directory for this config.)r{   rl   r   r   resolver8   s    r   rb   zTrainConfig.assets_dirsQ  s*     T122TY>GGIIIr   c                     | j         st          d          t          j        | j                  | j        z  | j         z                                  S )z-Get the checkpoint directory for this config.z--exp_name must be set)r   
ValueErrorr{   rl   r   r   r   r   s    r   checkpoint_dirzTrainConfig.checkpoint_dirV  sJ     } 	75666T566BT]R[[]]]r   c                 n    t          j        t           j        t          j        | j                            S )z,Get the filter for the trainable parameters.)nnxAllParamNotr   r   s    r   trainable_filterzTrainConfig.trainable_filter]  s%     wsy#'$*<"="=>>>r   c                 D    | j         r| j        rt          d          d S d S )Nz-Cannot resume and overwrite at the same time.)r   r   r   r   s    r   __post_init__zTrainConfig.__post_init__b  s>    ; 	N4> 	NLMMM	N 	N 	N 	Nr   )r6   N)Cr   r   r   rg   rw   rx   r   r   r   rh   r   r,   r-   rT   rU   r   r;   r<   weight_loadersNoOpWeightLoaderr   WeightLoaderr   r   r   
_optimizerCosineDecayScheduler   LRScheduleConfigAdamWr   OptimizerConfigr   floatr   Nothingr   r
   r}   r   r_   r   r   r   intr   r   r   r   r   r   r   r/   r   r   r   r)   r   r   propertyr{   rl   rb   r   	filterlibr   r  r   r   r   r   r   	  s(         )
S
!!!! L#   LHc   
 %6K$5jFZ$[$[$[E6![[[ 2C1BSaSr1s1s1sM>.sss '+t*** BL(= >KKK/@{/@Q[Qo/p/p/pK,ppp,=K,=jN^,_,_,_Iz)___"Iut|""" 1B0ARUR]0^0^0^M49%f-^^^ 0k/OOOD
OOO &OS%%%.... D#NNNJ K!OS!!! L#M3"Kt""" ItFD M4 .2OT#s(^d*111 L#JW\ J J J XJ ^ ^ ^ ^ X^ ?#-"6 ? ? ? X?N N N N N Nr   r   	pi0_alohatrossen)r   )r`   
reset_pose)r   g      g      ?r   r   r   )r   r   r   r   
pi05_aloha)pi05pi0_aloha_towelzfold the towel)r`   r?   pi0_aloha_tupperwarez1open the tupperware and put the food on the plate	pi0_droid
   )rE   r   c                     t          j        t          j        t          j                  gt          j                    g          S Nr   rG   )r*   r.   r   r   r	   rJ   r   r   s    r   <lambda>r    s=    +*;$0IMJJJK%2445+ + + r   )r%   )r`   r    ra   )r   r   r   pi0_fast_droid   )rF   rE   c                     t          j        t          j        t          j                  gt          j                    g          S r  )r*   r.   r   r   r	   rV   r   r  s    r   r  r    s>    +*;$0I<NOOOP%2445+ + + r   
pi05_droid   )rE   r  c                     t          j        t          j        t          j                  gt          j                    g          S r  )r*   r.   r   r   r	   rR   r   r  s    r   r  r    s=    +*;$0INKKKL%2445+ + + r   
pi0_liberozphysical-intelligence/libero)r   ra   r   z.gs://openpi-assets/checkpoints/pi0_base/paramsr   )r   r   r   r   r   pi0_libero_low_mem_finetunegemma_2b_loragemma_300m_lora)paligemma_variantaction_expert_variant)r   r   r   r   r   r   r   pi0_fast_liberor      )rF   rE   rP   z3gs://openpi-assets/checkpoints/pi0_fast_base/params pi0_fast_libero_low_mem_finetune)rF   rE   rP   r&  pi05_liberoF)r  rE   rD      i'  g-C6
?i@B )warmup_stepspeak_lrdecay_stepsdecay_lrr   )clip_gradient_normg+?z/gs://openpi-assets/checkpoints/pi05_base/paramsz!/path/to/your/pytorch_weight_path)
r   r   r   r   r   r   r   r   r   r   pi0_aloha_pen_uncapz-physical-intelligence/aloha_pen_uncap_diversez.gs://openpi-assets/checkpoints/pi0_base/assets)r   r   zuncap the penzobservation.images.cam_highz!observation.images.cam_left_wristz"observation.images.cam_right_wrist)r   cam_left_wristcam_right_wristr   r   r   rB   )r   r`   r?   r   i N  pi05_aloha_pen_uncapz/gs://openpi-assets/checkpoints/pi05_base/assets@   )r   r   r   r   r   r   pi0_fast_full_droid_finetune   z<path_to_droid_rlds_dataset>)r   r&   r'   r   i r   r   )r   r   r   r   r   r   r   r   r   r   r   pi05_full_droid_finetuner   )r  rF   rE   z/mnt/pi-data/kevinz0gs://openpi-assets/checkpoints/pi05_base/assets/)r   r&   r'   r`   pi05_droid_finetunez!your_hf_username/my_droid_datasetz0gs://openpi-assets/checkpoints/pi05_droid/assets)r   ra   r`   z0gs://openpi-assets/checkpoints/pi05_droid/paramspi0_aloha_simz%lerobot/aloha_sim_transfer_cube_humanzTransfer cube)r   r?   r   pi05_yamzrobot-lab/Sort_objects_lf)r   r   ra   )r   r   r   r   r   r   r   pi05_yam_low_mem)r  r&  zYOLO2431/yam_place_lock_simple)r   ra   )	r   r   r   r   r   r   r   r   r   pi05_yam_dense1   yam)r   r   r`   ra   )	r   r   r   r   r   r   r   r   r   debugr   dummy)	r   r   r   r   r   r   r   r   r   debug_restorez"./checkpoints/debug/debug/9/params)	r   r   r   r   r   r   r   r   r   
debug_pi05)r  r&  r'  )r   r   r   r   r   r   r   r   c                     h | ]	}|j         
S r   r   .0configs     r   	<setcomp>rJ  <  s    ++++++r   zConfig names must be unique.c                     i | ]
}|j         |S r   rF  rG  s     r   
<dictcomp>rL  >  s    <<<f<<<r   r6   c                      t           j                            d t                                          D                       S )Nc                     i | ]
\  }}|||fS r   r   )rH  kvs      r   rL  zcli.<locals>.<dictcomp>B  s"    .[.[.[TQq1a&.[.[.[r   )rg   extrasoverridable_config_cli_CONFIGS_DICTitemsr   r   r   clirU  A  s3    ;--.[.[]EXEXEZEZ.[.[.[\\\r   config_namec                     | t           vrTt          j        | t                                           dd          }|rd|d          dnd}t	          d|  d	|           t           |          S )
zGet a config by name.r   g        )ncutoffz Did you mean 'r   z'?  zConfig 'z' not found.)rS  difflibget_close_matcheskeysr   )rV  closestclosest_strs      r   
get_configr`  E  s}    -''+K9K9K9M9MQR[^___;BJ7
7777JKJJ[JJKKK%%r   )er   ry   collections.abcr   r,   r[  rs   r{   typingr   r   r   r   etils.epathrk   flax.nnxr   typing_extensionsr   rg   openpi.models.modelmodelsr   r;   openpi.models.pi0_configrT   openpi.models.pi0_fastpi0_fastopenpi.models.tokenizer	tokenizerrN   openpi.policies.aloha_policypoliciesr   openpi.policies.droid_policyr   openpi.policies.libero_policyr   openpi.policies.yam_policyr   openpi.shared.downloadshareddownloadrq   openpi.shared.normalize	normalizero   "openpi.training.droid_rlds_datasettrainingr0   #openpi.training.misc.polaris_configmiscpolaris_config%openpi.training.misc.roboarena_configroboarena_configopenpi.training.optimizerr   r  openpi.training.weight_loadersr  openpi.transforms
transformsr*   r	   r   r  r
   	dataclassr   r   r4   r>   ABCr_   r}   r   r   r   r   r   r   r   rU   Pi0FASTConfigCheckpointWeightLoaderget_freeze_filterr  r  r.   r   r1   r   get_roboarena_configsget_polaris_configs_CONFIGSlenr   rS  rU  r   r`  r   r   r   <module>r     s   5 5 5 



 $ $ $ $ $ $        4 4 4 4 4 4 4 4 4 4 4 4             & & & & & &  $ $ $ $ $ $ $ $ $ - - - - - - - - - ) ) ) ) ) ) ) ) ) , , , , , , , , , 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 / / / / / / / / / * * * * * * * * * , , , , , , , , , ? ? ? ? ? ? ? ? ? < < < < < < < < < < < < @ @ @ @ @ @ @ @ @ @ @ @ . . . . . . . . . 7 7 7 7 7 7 7 7 7 ' ' ' ' ' ''	9 ' ' 'M(	 ( ( ( d###              $# 4 d###!< !< !< !< !< !< !< $#!<H    8   
 d###8 8 8 8 8L 8 8 $#8v d###! ! ! ! ! ! ! $#!H d###0 0 0 0 0& 0 0 $#0 d###
 
 
 
 
( 
 
 $#
 d###1
 1
 1
 1
 1
. 1
 1
 $#1
h d###I
 I
 I
 I
 I
/ I
 I
 $#I
X d###3
 3
 3
 3
 3
, 3
 3
 $#3
l d###@
 @
 @
 @
 @
+ @
 @
 $#@
F d####
 #
 #
 #
 #
. #
 #
 $##
L d###ZN ZN ZN ZN ZN ZN ZN $#ZND K"j"$$##<333
 
 
 &'>'>'>?   K"j"---##<333
 
 
 &'>'>'>?   K"j"$$##<333+
 
 
 &'>'>'>?   K#"j"$$##<333N
 
 
 &'>'>'>?   K"j""555<111  #
!%  	
 	
 	
   K$h$"EEE<111  #
!%  	
 	
 	
   K"j""4@@@<111  #
!%  	
 	
 	
  , K #j"$$ %$2"
 "&	   #'	
 	
 	
 <n;<lmm 3  6 K*"j"_\mnnn$$2"
D999"&
 
 

 <n;<lmm
 +j*-EV
 
 




'  * K %h$"TWXXX$$2"
D999"&
 
 
 <n;<qrr)  , K/ %h$3Ra
 
 
 %$2"
D999"&
 
 

 <n;<qrr -h,3Ra
 
 




)  , K"j"RV[\\\$$2"
D999"'
 
 

 2J2!	
 
 
 #*"c:::;n;<mnn?'  4 K""j"$$##C<K"   +/k//K/ -J2U3W' '
 &9'/ 
 
  
 
 
. <n;<lmm7  : K#"j"---##C<L"   +/k//K/ -J2U3W' '
 &9'/ 
 
  
 
 
. <n;<mnn9  B K ,$h$
 
 

 ! 8+<K	
 
 
 <n;<qrr2J2!	
 
 
  9  < K ("j"
 
 

 ! .+<K<M   	
 	
 	
 <n;<mnn2J2!	
 
 
  A! ! !D K #"j"
 
 

 $#7"
D999<M   		
 	
 	
 <n;<noo-  6 K"j"$$##;*$)
 
 

 <n;<lmm
 
 
 K"j"---!!/$)"
D999
 
 

 <n;<mnn   K"j"PPP!!4"
D999
 
 
 <n;<mnn*j*
 
 




  $ K"j"
 
 
 "!/$)<///"
D999	
 
 
 <n;=
 
 '  0 K^"j"WT[\\\
 
 
 K^"j"WT[\\\;n;<`aa
 
 
 K"j"_fggg^	 	 	KR` ,+--aRb (^'))cRh 3++(+++,,H==
*3
4
44<<8<<<][ ] ] ] ]&C &K & & & & & &r   