o
    oi                     @   s   d dl mZmZ d dlZd dlmZmZ d dlmZ dd Z	dej
jfdd	Zed
krAedZejdg ddd e	e  dS dS )    )ListTupleN)init_dfsetup_df_argument_parser)log_model_summaryc                 C   sx   t | j| j| jd dd d\}}}| jdkrt| d S | jdkr(t|dd d S | jdkr8t|D ]}t| q1d S d S )NT)post_filter	log_levellog_fileconfig_allow_defaultsepochtorchptflops)verbosetable)r   model_base_dirpfr   typeprintr   model_summary_table)argsmodel_line r   V/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/df/scripts/model_summary.pymain	   s"   



r   mc                    sl  dt jjfdd t|  dd  }tdd |D d }g }|d|dd	f |d
t|d d  d
t|d d  f |D ]'\}}t	 fdd|
 D rVqD |dkrk|||d |df qD|d
t|d d  d
t|d d  f |d| | df tdd |D }tt|D ]}|| d || d | ||< q|S )Nr   c                 S   s   t dd |  D S )Nc                 s   s    | ]}|  V  qd S N)numel).0pr   r   r   	<genexpr>   s    z8model_summary_table.<locals>.n_params.<locals>.<genexpr>)sum
parameters)r   r   r   r   n_params   s   z%model_summary_table.<locals>.n_params   c                 s   s    | ]	\}}t |V  qd S r   len)r   nr   r   r   r   r!           z&model_summary_table.<locals>.<genexpr>Name 
Parameters-r   c                 3   s    | ]	} fd dV  qdS )c                    s    | dkS )Nr   r   )cr$   r   r   <lambda>(   s    z/model_summary_table.<locals>.<genexpr>.<lambda>Nr   )r   r.   r/   r   r   r!   (   r)   ,Sumc                 s   s    | ]	\}}t |V  qd S r   r&   )r   r   r    r   r   r   r!   0   r)   )r   nnModulelistnamed_modulesmaxappendljustr'   anychildrenrangerjust)r   childsmax_len_nameoutnamec_mmax_len_paramsir   r/   r   r      s$   ..$r   __main__WARNINGz--type)r   r   r   r   )choicesdefault)typingr   r   r   
df.enhancer   r   	df.loggerr   r   r3   r4   r   __name__parseradd_argument
parse_argsr   r   r   r   <module>   s    