CoolFace
Apppublic

CraigDroke/pgt_toy_problem

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
toy_problem_pgt.cpython-310.pyc54 linesDownload Raw Back to __pycache__
1o

27�g,�@s�ddlZddlmZmZmZmZmZddlmZddl	m3Z4ddlZddlm
ZddlZddlZddlZdd�Zd8d	d5�Z		d9dd�Zedkr�e��Zejdeddd�ejdeddd�ejdeddd�ejdedd d�ejd!edd"d�ejd#ed$d%d�ejd&edd'd�ejd(ed
d)d�ejd*edd+d�ejd,edd-d�ejd.edd/d�ejd0edd1d�ejd2edd3d�ejd4edd5d�ejd6edd7d�e��Zeej ej!ej"ej#ej$ej%ej&ej'ej(ej)ej*ej+ej,ej-ej.�dSdS):�N)�get_center_coords�get_distance_grids�get_plaus_loss�get_bbox_map�normalize_batch)�imshow)�
gaussian_blurcCs�td|j���z|��������}Wn|}Yt|j�dkr+|j|dd�dSt|j�dkrc|jddks@|jddkrGt�	|d�}n|}|jddkr\|jt�6|�dd�dS|�|�dStd	|j����)7Nzimg shape: ��gray)�cmap�r�)r
r	rzUnexpected image shape: )�print�shape�clone�detach�cpu�numpy�lenr�np�	transpose�squeeze�8ValueError)�img�ax�npimg�tpimg�r�1/home/drokec87/pgt_toy_problem/toy_problem_pgt.py�subfigimshowsr�r��rr	cCst|j�dkrtj|gddd�}nt|j�dkr(|jddkr(tj|ddd�}|jtjkr:|d�dd��tj�}|�	�}|D]I}|\}}}}	t9||d|jd�}10t11||	d|jd�}t12||d|jd�}t13||	d|jd�}
t�||14|f||
f||�q@|S)Nr	r�����)�axisr
r!r)
rrr�stack�repeat�dtype�uint8�clip�astype�copy�int�cv2�	rectangle)�image�boxes�color�	thickness�image_with_boxes�box�x_center�y_center�width�height�x_min�y_min�x_max�y_maxrrr�draw_bounding_boxes$sr<�i@�@�0��?T�Fc/Cs�t��}||_||_||_||_||_||_||_||_	||_15|	|_|16|_||_
||_|
|_||_g}dtjd<tt|j	��tjd<t�dd|j|jddgg�}t�|dd�df�}tt�t|�ddd�dd	�d17�d�}t|||ddd�}|jr�t||�}t�||�t�|�}d
|}d}t|�}|d}d}tj ||||fd�}t�!�tj ||||fd�}t�!�tj"dd�\}}g}tj"dd�\} }!g}"t#d�D�]q}#t|�d�||dd�\}\}}$}%}&tj$j%||ddd�d}'||'|}||j9}t|||dd�\}\}}$}%}&|j�r(t||�}t�||�t�|�}d
|}|}&t&|�}|�'t(|��|"�'t(|��t)d|#�d|�d|�d|$�d|%��18�t#t|��D]�}(|#dk�r�|j�r�|�*||d|(|�})|)�+d|(���d|&|(�,��-�}*|*�,��-��.��/�}+tj0�1|+�},|dd�dd�f�,��-��.�}-t2|,|-�}.t3|.|)�|)�4d��qS|#dk�r|�*||d|(|�})|)�+|(dk�r�d|#��nd�||(�,��-�}*|*�,��-��.��/�}+tj0�1|+�},|dd�dd�f�,��-��.�}-t2|,|-�}.t3|.|)�|)�4d��qS|�*||d|#d|(|�})|)�+|(dk�rd|#��nd�||(�,��-�}*|*�,��-��.��/�}+tj0�1|+�},t3|,|)�|)�4d��qSq�|j5t#|�|ddd �|�+d!�|�6d"�|�7d�|�8d�|�9�|!j5t#|�|"dd#d �|!�+d$�|!�6d"�|!�7d%�|!�8d�|!�9�|j:d&d'd(�t�;|�|j:d)d'd(�t�;|�|j:d*d'd(�t�;|�| j:d+d'd(�t�;|�t)d,�d-S).N�19PCI_BUS_ID�CUDA_DEVICE_ORDER�CUDA_VISIBLE_DEVICESrg�������?r
i�r	�
�T)�attribution_map�opt�debug�	only_loss��?�20r)�figsize)rL�)rGrHrI)�create_graph�retain_graphzstep: z, plaus_loss: z, plaus_score: z, dist_reg: z
, plaus_reg: zDistance Regularization Map rN�offz21Attr Step ��ozPlausibility Loss)�marker�labelz Plausibility Losses Across Steps�StepzPlausibility Scoresz Plausibility Scores Across StepszPlausibility Score� figs/distance_and_first_step.png�tight)�bbox_inches�figs/remaining_attr_steps.png�figs/plausibility_losses.png�figs/plausibility_scores.pngz�Figures saved: figs/distance_and_first_step.png, figs/remaining_attr_steps.png, and figs/plausibility_losses.png, figs/plausibility_scores.png)rWrZr[r\)<�argparse�	Namespace�	pgt_coeff�focus_coeff�x_coord�y_coord�num_bb�alpha�	scheduler�device�22dist_coeff�
dist_reg_only�	iou_coeff�23bbox_coeff�dist_x_bbox�
iou_loss_only�
show_dist_reg�os�environ�strr+�torch�tensor�uniquer�randr�requires_grad_rr�sum�plt�figure�tight_layout�subplots�range�autograd�gradr�append�floatr�add_subplot�	set_titlerrrr�cm�viridisr<rr#�plot�24set_xlabel�25set_ylabel�grid�legend�savefig�close)/r_r`rarbrcrdrerfrgrhrirjrkrlrmrH�	save_dirs�targets�unique_classes�attr�26plaus_loss�bbox_map�plaus_score�nsamples�rows�cols�size�fig1�fig2�fig3�ax3�plaus_losses�fig4�ax4�plaus_scores�i�dist_reg�	plaus_reg�distance_map�27delta_attr�jr�28img_tensor�img_np�img_colored�bbox_coords�img_with_boxesrrr�toy_problem:s�29�30(�31"3233& 343536 373839�%404142434445464748495051r��__main__z--pgt_coeffrKr_)�type�default�helpz
--focus_coeffg�������?r`z--alphagy@rdz--num_bbrcz	--x_coordraz	--y_coordgffffff�?rbz--schedulerzscheduler for alphaz--devicerfz--dist_coeffrgz--dist_reg_onlyrhz--iou_coeffriz--bbox_coeffrjz
--dist_x_bboxrkz--iou_loss_onlyrlz--show_dist_regz*show distance regularization map in figure)r r	)rr=r>r?r@Tr@rAFFT)/rq�plaus_functsrrrrr�plot_functsr�!torchvision.transforms.functionalrr]�matplotlib.pyplot�pyplotrwrrrnr,rr<r��__name__�ArgumentParser�parser�add_argumentrr+rp�bool�52parse_argsrHr_r`rarbrdrcrerfrgrhrirjrkrlrmrrrr�<module>sL5354�$��