Skip to contents

Also known as im2col, this extracts flattened patches from a rank-4 channels-first input.

Usage

op_unfold(x, kernel_size, dilation = 1L, padding = 0L, stride = 1L)

Arguments

x

A tensor of shape (batch, channels, height, width).

kernel_size

Integer or integer vector of length two specifying the sliding window size (kernel_height, kernel_width). A scalar is used for both dimensions.

dilation

Integer or integer vector of length two specifying the spacing between kernel points, also known as dilation or atrous convolution. Defaults to 1.

padding

Integer or integer vector of length two specifying zero padding for both spatial dimensions. Defaults to 0.

stride

Integer or integer vector of length two specifying the sliding window step. Defaults to 1.

Value

A tensor of shape (batch, channels * kernel_height * kernel_width, L), where L is the product of the numbers of patches along the height and width dimensions.

See also

Other nn ops:
op_adaptive_average_pool()
op_adaptive_max_pool()
op_average_pool()
op_batch_normalization()
op_binary_crossentropy()
op_categorical_crossentropy()
op_celu()
op_conv()
op_conv_transpose()
op_ctc_loss()
op_depth_to_space()
op_depthwise_conv()
op_dot_product_attention()
op_elu()
op_fold()
op_gelu()
op_glu()
op_hard_shrink()
op_hard_sigmoid()
op_hard_silu()
op_hard_tanh()
op_layer_normalization()
op_leaky_relu()
op_log_sigmoid()
op_log_softmax()
op_max_pool()
op_moments()
op_multi_hot()
op_normalize()
op_one_hot()
op_polar()
op_psnr()
op_relu()
op_relu6()
op_rms_normalization()
op_selu()
op_separable_conv()
op_sigmoid()
op_silu()
op_soft_shrink()
op_softmax()
op_softplus()
op_softsign()
op_space_to_depth()
op_sparse_categorical_crossentropy()
op_sparse_plus()
op_sparse_sigmoid()
op_sparsemax()
op_squareplus()
op_tanh_shrink()
op_threshold()
op_unravel_index()

Other ops:
op_abs()
op_adaptive_average_pool()
op_adaptive_max_pool()
op_add()
op_all()
op_allclose()
op_angle()
op_any()
op_append()
op_arange()
op_arccos()
op_arccosh()
op_arcsin()
op_arcsinh()
op_arctan()
op_arctan2()
op_arctanh()
op_argmax()
op_argmin()
op_argpartition()
op_argsort()
op_array()
op_array_split()
op_associative_scan()
op_average()
op_average_pool()
op_bartlett()
op_batch_normalization()
op_binary_crossentropy()
op_bincount()
op_bitwise_and()
op_bitwise_invert()
op_bitwise_left_shift()
op_bitwise_not()
op_bitwise_or()
op_bitwise_right_shift()
op_bitwise_xor()
op_blackman()
op_broadcast_to()
op_cast()
op_categorical_crossentropy()
op_cbrt()
op_cdist()
op_ceil()
op_celu()
op_cholesky()
op_cholesky_inverse()
op_clip()
op_concatenate()
op_cond()
op_conj()
op_conv()
op_conv_transpose()
op_convert_to_numpy()
op_convert_to_tensor()
op_copy()
op_corrcoef()
op_correlate()
op_cos()
op_cosh()
op_count_nonzero()
op_cross()
op_ctc_decode()
op_ctc_loss()
op_cumprod()
op_cumsum()
op_custom_gradient()
op_deg2rad()
op_depth_to_space()
op_depthwise_conv()
op_det()
op_diag()
op_diagflat()
op_diagonal()
op_diff()
op_digitize()
op_divide()
op_divide_no_nan()
op_dot()
op_dot_product_attention()
op_dsplit()
op_dstack()
op_dtype()
op_eig()
op_eigh()
op_einsum()
op_elu()
op_empty()
op_empty_like()
op_equal()
op_erf()
op_erfc()
op_erfinv()
op_exp()
op_exp2()
op_expand_dims()
op_expm1()
op_extract_sequences()
op_eye()
op_fabs()
op_fft()
op_fft2()
op_flip()
op_fliplr()
op_flipud()
op_floor()
op_floor_divide()
op_fmax()
op_fmin()
op_fmod()
op_fold()
op_fori_loop()
op_full()
op_full_like()
op_gcd()
op_gelu()
op_geomspace()
op_get_item()
op_glu()
op_greater()
op_greater_equal()
op_hamming()
op_hanning()
op_hard_shrink()
op_hard_sigmoid()
op_hard_silu()
op_hard_tanh()
op_heaviside()
op_histogram()
op_hsplit()
op_hstack()
op_hypot()
op_i0()
op_identity()
op_ifft2()
op_imag()
op_image_affine_transform()
op_image_crop()
op_image_extract_patches()
op_image_extract_patches_3d()
op_image_gaussian_blur()
op_image_hsv_to_rgb()
op_image_map_coordinates()
op_image_pad()
op_image_perspective_transform()
op_image_resize()
op_image_rgb_to_grayscale()
op_image_rgb_to_hsv()
op_image_scale_and_translate()
op_image_sobel_edges()
op_image_ssim()
op_in_top_k()
op_inner()
op_inv()
op_irfft()
op_is_tensor()
op_isclose()
op_isfinite()
op_isin()
op_isinf()
op_isnan()
op_isneginf()
op_isposinf()
op_isreal()
op_istft()
op_jvp()
op_kaiser()
op_kron()
op_layer_normalization()
op_lcm()
op_ldexp()
op_leaky_relu()
op_left_shift()
op_less()
op_less_equal()
op_linspace()
op_log()
op_log10()
op_log1p()
op_log2()
op_log_sigmoid()
op_log_softmax()
op_logaddexp()
op_logaddexp2()
op_logdet()
op_logical_and()
op_logical_not()
op_logical_or()
op_logical_xor()
op_logspace()
op_logsumexp()
op_lstsq()
op_lu_factor()
op_map()
op_matmul()
op_matrix_rank()
op_max()
op_max_pool()
op_maximum()
op_mean()
op_median()
op_meshgrid()
op_min()
op_minimum()
op_mod()
op_moments()
op_moveaxis()
op_multi_hot()
op_multiply()
op_nan_to_num()
op_nanargmax()
op_nanargmin()
op_nancumprod()
op_nancumsum()
op_nanmax()
op_nanmean()
op_nanmedian()
op_nanmin()
op_nanpercentile()
op_nanprod()
op_nanquantile()
op_nanstd()
op_nansum()
op_nanvar()
op_ndim()
op_negative()
op_nextafter()
op_nonzero()
op_norm()
op_normalize()
op_not_equal()
op_one_hot()
op_ones()
op_ones_like()
op_outer()
op_pad()
op_percentile()
op_pinv()
op_polar()
op_power()
op_prod()
op_psnr()
op_ptp()
op_qr()
op_quantile()
op_rad2deg()
op_ravel()
op_real()
op_rearrange()
op_reciprocal()
op_relu()
op_relu6()
op_repeat()
op_reshape()
op_rfft()
op_right_shift()
op_rms_normalization()
op_roll()
op_rot90()
op_round()
op_rsqrt()
op_saturate_cast()
op_scan()
op_scatter()
op_scatter_update()
op_searchsorted()
op_segment_max()
op_segment_min()
op_segment_prod()
op_segment_sum()
op_select()
op_selu()
op_separable_conv()
op_shape()
op_sigmoid()
op_sign()
op_signbit()
op_silu()
op_sin()
op_sinc()
op_sinh()
op_size()
op_slice()
op_slice_update()
op_slogdet()
op_soft_shrink()
op_softmax()
op_softplus()
op_softsign()
op_solve()
op_solve_triangular()
op_sort()
op_space_to_depth()
op_sparse_categorical_crossentropy()
op_sparse_plus()
op_sparse_sigmoid()
op_sparsemax()
op_split()
op_sqrt()
op_square()
op_squareplus()
op_squeeze()
op_stack()
op_std()
op_stft()
op_stop_gradient()
op_subset()
op_subtract()
op_sum()
op_svd()
op_swapaxes()
op_switch()
op_take()
op_take_along_axis()
op_tan()
op_tanh()
op_tanh_shrink()
op_tensordot()
op_threshold()
op_tile()
op_top_k()
op_trace()
op_transpose()
op_trapezoid()
op_tri()
op_tril()
op_triu()
op_trunc()
op_unique()
op_unravel_index()
op_unstack()
op_vander()
op_var()
op_vdot()
op_vectorize()
op_vectorized_map()
op_view()
op_view_as_complex()
op_view_as_real()
op_vsplit()
op_vstack()
op_where()
op_while_loop()
op_zeros()
op_zeros_like()

Examples

x <- op_ones(c(1, 2, 4, 4))
op_unfold(x, kernel_size = 2, stride = 2)
#> tf.Tensor(
#> [[[1. 1. 1. 1.]
#>   [1. 1. 1. 1.]
#>   [1. 1. 1. 1.]
#>   [1. 1. 1. 1.]
#>   [1. 1. 1. 1.]
#>   [1. 1. 1. 1.]
#>   [1. 1. 1. 1.]
#>   [1. 1. 1. 1.]]], shape=(1, 8, 4), dtype=float32)