با سلام
دوستان یک کد pytorch در ادامه قرار دادم که دقیقا نمیدونم این قسمت کد چیکار میکنه و من نیاز دارم که این کد رو به کراس تبدیل کنم اما دقیقا نمیدونم که چه طور باید این کار رو کرد؟ در واقع تبدیل کردم ولی خطا میده. لطفا راهنمایی بفرمایید که مشکل از کجاس و ایا در تبدیل مشکلی وجود داره؟
ابتدا کد تورچ رو قرار میدم:
for channel in range(image.shape[1]):
image_yuv_ch = image[:, channel, :, :].unsqueeze_(1)
image_conv = F.conv2d(image_yuv_ch, filters, stride=8)
image_conv = image_conv.permute(0, 2, 3, 1)
image_conv = image_conv.view(image_conv.shape[0], image_conv.shape[1], image_conv.shape[2], 8, 8)
image_conv = image_conv.permute(0, 1, 3, 2, 4)
image_conv = image_conv.contiguous().view(image_conv.shape[0],
image_conv.shape[1]*image_conv.shape[2],
image_conv.shape[3]*image_conv.shape[4])
کد تبدیل شده در کراس
for channel in range(image.shape[1]):
image_yuv_ch = K.expand_dims(image[:, channel, :, :],1)
image_conv = Kr.backend.conv2d(image_yuv_ch,filters,strides=(8,8),data_format='channels_first')
# image_conv = Kr.backend.permute_dimensions(image_conv,(0, 2, 3, 1))
image_conv = Kr.backend.reshape(image_conv,(image_conv.shape[0], image_conv.shape[1], image_conv.shape[2], 8, 8))
# image_conv = Kr.backend.permute_dimensions(image_conv,(0, 1, 3, 2, 4))
image_conv = Kr.backend.reshape(image_conv,(image_conv.shape[0],
image_conv.shape[1]*image_conv.shape[2],
image_conv.shape[3]*image_conv.shape[4]))