U ˆófbLã@s&ddlZddlZddlZddd„ZdS)éNÚ tensorflowcCst|tjƒst|tjƒr$t|jƒ}nt|tjƒr<| ¡  ¡}t|tjƒrt |ƒdkr¦|dkr~|d|dkr~|  ddd¡}n&|dkr¤|d|dkr¤|  ddd¡}ndt |ƒdkr|dkrÞ|d|dkrÞ|  dddd¡}n,|dkr|d|dkr|  dddd¡}nt|tjƒrèt |ƒdkr‚|dkrV|d|dkrVt  |dd¡}n*|dkræ|d|dkræt  |dd¡}ndt |ƒdkr|dkr¼|d|dkr¼t  |dd¡}n*|dkr|d|dkrt  |dd¡}n,t|tjƒr|  ¡}t||d }t |¡}|S) aÿCheck order of axes in an array or tensor and convert to desired format. Arguments --------- arr : :class:`numpy.array` or :class:`torch.Tensor` or :class:`tensorflow.Tensor` target : str, optional Desired axis order type. Possible values: - ``'tensorflow'`` (default): ``[N, Y, X, C]`` or ``[Y, X, C]`` - ``'torch'`` : ``[N, C, Y, X]`` or ``[C, Y, X]`` Returns ------- out_arr : an object of the same class as `arr` with axes in the desired order. érrééÚtorchééÿÿÿÿ)Útarget)Ú isinstancerÚTensorÚnpÚndarrayÚlistÚshapeÚtfÚ get_shapeÚas_listÚlenÚpermuteÚmoveaxisÚevalÚ reorder_axesÚconvert_to_tensor)Úarrr ÚaxesZ np_version©rúj/home/ec2-user/SageMaker/vegetation-management-remars2022/remars2022-workshop/libs/solaris/utils/raster.pyrs>      r)r)rÚnumpyr rrrrrrrÚs