Size: a a a

Data Science Kazakhstan (DS/ML kz)

2020 June 22

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
Есть проблема: Торчевский датасет из датафрейма, в котором прописан путь к изображению, достаю изображение через getitem, iloc и получаю проблемы, когда пытаюсь заслайсить датасет, как лечить?
источник

AM

Assylbek Malibayev in Data Science Kazakhstan (DS/ML kz)
Minhyun Kim
Есть проблема: Торчевский датасет из датафрейма, в котором прописан путь к изображению, достаю изображение через getitem, iloc и получаю проблемы, когда пытаюсь заслайсить датасет, как лечить?
что пишет?
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
Minhyun Kim
Есть проблема: Торчевский датасет из датафрейма, в котором прописан путь к изображению, достаю изображение через getitem, iloc и получаю проблемы, когда пытаюсь заслайсить датасет, как лечить?
заслайсить имеешь ввиду сделать разделение на train/val/test?
источник

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
Kamalkhan Artykbayev
заслайсить имеешь ввиду сделать разделение на train/val/test?
ага
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
а какую ты функцию выбираешь для этого?
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
там кажется есть специальная функция которая может рандомно распределить, затем все в data loader.
источник

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
Kamalkhan Artykbayev
а какую ты функцию выбираешь для этого?
train_test_split, но пытался и просто через [:int(len*0.7)]
источник

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
Assylbek Malibayev
что пишет?
считает, что я Series передаю в функцию открытия файла
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
через эту функцию не пытался?
источник

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
Kamalkhan Artykbayev
через эту функцию не пытался?
не пытался, попробую
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
import torch
from torch.utils.data import Dataset
from torch.utils.data import DataLoader
from torch.utils.data.sampler import SubsetRandomSampler

def prepare_samplers(set, val_size,test_size, shuffle = True):
   dataset_size = len(set)
   indices = list(range(dataset_size))
   split_ts = int(np.floor(test_size *  dataset_size))
   split_val = int(np.floor(split_ts+ val_size * (dataset_size)))
   if shuffle:
       np.random.shuffle(indices)

   test_indices, val_indices, train_indices = indices[:split_ts], indices[split_ts:split_val], indices[split_val:]
   return SubsetRandomSampler(train_indices), SubsetRandomSampler(val_indices), SubsetRandomSampler(test_indices)
input_size = 28
test_size = 0.2
val_size = 0.1

dataset = SampleDataset(path, input_size)
tr_sampler, val_sampler, ts_sampler = prepare_samplers(dataset, val_size, test_size, shuffle=False)

test_loader = DataLoader(dataset = dataset, batch_size=batch_size, sampler=ts_sampler)
val_loader = DataLoader(dataset = dataset, batch_size = batch_size, sampler=val_sampler)
train_loader = DataLoader(dataset=dataset, batch_size = batch_size, sampler=tr_sampler)
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
вот тут полностью код чтобы поделить на train test split
источник

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
спасибо
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
и при запуске будет всегда рандомно вытаскивать)
источник

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
а вообще, имеет смысл не сразу все картинки в память грузить, а вытаскивать так через getitem?
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
можно кажись еще прикрутить class balancing - но не делал)
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
Minhyun Kim
а вообще, имеет смысл не сразу все картинки в память грузить, а вытаскивать так через getitem?
имеешь ввиду не вбивать через data loader, а через цикл прогонять и вытаскивать через get item?
источник

MK

Minhyun Kim in Data Science Kazakhstan (DS/ML kz)
Kamalkhan Artykbayev
имеешь ввиду не вбивать через data loader, а через цикл прогонять и вытаскивать через get item?
нее, просто некоторые в датасетах прописывают в конструкторе загрузку в память картинок через луп, а некоторые в конструкторе только датафрейм забирают, а потом через гетайтем картинки закидывают
источник

KA

Kamalkhan Artykbayev in Data Science Kazakhstan (DS/ML kz)
Minhyun Kim
нее, просто некоторые в датасетах прописывают в конструкторе загрузку в память картинок через луп, а некоторые в конструкторе только датафрейм забирают, а потом через гетайтем картинки закидывают
лучше да через getitem думаю будет. видел такую практику у большинства)через инициализацию датасета в память сам не закидывал)
но можно попробовать конечно(лучше не стоит)
источник