कोड की इस पंक्ति को Tensor Flow से Pytorch में बदलने में, मुझे परेशानी हो रही है

datagen =  ImageDataGenerator(
  shear_range=0.2,
  zoom_range=0.2,
)
def read_img(filename, size, path):
    img = image.load_img(os.path.join(path, filename), target_size=size)
    #convert image to array
    img = img_to_array(img) / 255
    return img

और फिर

corona_df = final_train_data[final_train_data['Label_2_Virus_category'] == 'COVID-19']
with_corona_augmented = []

#create a function for augmentation
def augment(name):
    img = read_img(name, (255,255), train_img_dir)
    i = 0
    for batch in tqdm(datagen.flow(tf.expand_dims(img, 0), batch_size=32)):
        with_corona_augmented.append(tf.squeeze(batch).numpy())
        if i == 20:
            break
        i =i+1

#apply the function
corona_df['X_ray_image_name'].apply(augment)

मैंने करने की कोशिश की

transform = transforms.Compose([transforms.Resize(255*255)
                               ])
train_loader = torch.utils.data.DataLoader(os.path.join(train_dir,corona_df),transform = transform,batch_size =32)
def read_img(path):
    img  = train_loader()
    img = np.asarray(img,dtype='int32')
    img = img/255
    return img

मैंने जारी रखने की कोशिश की लेकिन त्रुटियों से बहुत भ्रमित हो गया। मैं किसी भी प्रतिक्रिया का स्वागत करता हूं। मुझे बताओ अगर मुझे कुछ याद आती है तो एक छोटी सी सलाह भी काम करेगी, धन्यवाद!

1
Stark_Tony 25 अगस्त 2020, 19:41

1 उत्तर

सबसे बढ़िया उत्तर

आप छवियों को पढ़ने के लिए एक कस्टम डेटासेट बना सकते हैं। यदि आपके पास छवियों से भरी निर्देशिका है तो आप ImageFolder डिफ़ॉल्ट डेटासेट का उपयोग कर सकते हैं। अन्यथा यदि आपके पास अलग फ़ोल्डर प्लेसमेंट है तो आप अपनी खुद की कस्टम डेटासेट क्लास लिख सकते हैं। कस्टम डेटासेट के लिए आप इस लिंक को देख सकते हैं। डेटालोडर क्या करता है, यह स्वचालित रूप से आपके डेटासेट से डेटा प्राप्त करता है और आपके डेटासेट __getitem__ फ़ंक्शन के अनुसार छवियों को पढ़ता है और परिवर्तन लागू करता है। तो आप वृद्धि लागू करने के लिए कुछ भी फैंसी की जरूरत नहीं है।

transform = transforms.Compose([ transforms.RandomAffine(20,shear=20,scale=(-0.2,0.2)),
                                 transforms.Resize(255*255)
                               ])

dataset = torchvision.datasets.ImageFolder(train_img_dir, transform=transform)
loader = torch.utils.data.DataLoader(dataset,batch_size =32,shuffle=True)

for batch in loader:
    output = model(batch)
1
Alperen Kantarcı 25 अगस्त 2020, 21:53