nodefluxio / vortex

A Deep Learning Model Development Framework for Computer Vision
27 stars 6 forks source link

[FEATURE] Dataset restructure #15

Closed alphinside closed 4 years ago

alphinside commented 4 years ago

Describe the solution you'd like Restructurization of current 'external/datasets' to accomodate both public dataset and custom dataset

alphinside commented 4 years ago

Prior discussion

[fahri]

kalo filosofinya vortex support research dan production, apalagi sekarang disini udah provide cli juga jadi makenya gampang banget, makanya ku discuss disini tentang directory dataset, toh judulnya juga restructure directory

singkatnya,

  1. logic untuk nambahin support buat dataset populer lebih pas kaya modelnya 'external' dataset dibandingkan 'torchvision-dataset'
  2. meaning 'external/dataset' udah berubah, sekarang ambigu; ku pikir lagi, kalau mau sebagai example harusnya masuk examples, kalo mau di-'promote' sebagai pool additional default dataset sekalian masuk vortex aja

[alvin]

Gw point beberapa hal dulu ya

cara vortex register dataset ada dua register sebagai 'external' dataset atau caranya 'torchvision-vortex' dataset yang manually bongkar dataset.py

Iya ini betul, karena historynya adalah kita pengen provide internal tools untuk built in dataset dan juga dataset custom yang pengen ditambahin. Pola ini juga ada di Pytorch dimana torchvision kan support beberapa dataset terkenal, bisa bikin dataloader sendiri dan juga ada ImageFolder dimana dataset yang diprovide external, tapi ada tools untuk supported data yang disiapinm sendiri. Notes ; COCO dan Imagenet di Pytorch juga ngikutin polanya ImageFolder ini

  • nah kalo additional dataset format yang perlu kita support ini, misalnya darknet, nambahinnya lebih mirip 'external/dataset' dibandingin sama 'torchvision-vortex' dataset sih

Betul ini bisa diasumsikan begitu bisa juga enggak, kalo gw pribadi gw lebih prefer ngikutin polanya COCO dan Imagenet di torchvision. mereka siapin tools buat bacanya, user tinggal ngikutin format file sama directory placementnya aja. Kalo ngikutin pola eksternal/dataset berarti tiap dataset harus punay utils/dataset.py masing2. Bisa sih dibuat pake template kaya standarisasi dataset dulu. Tapi lebih mempermudah klo approachnya kaya di torchvision

next time kita provide default support buat dataset cv populer (darknet misalnya), kupikir ga ada alasan buat nggak nge ship itu, makanya kupikir directory 'external/dataset' ini perlu masuk vortex juga

Nah buat yang ini gw sangat ga setuju, masukin external/dataset ke vortex berarti menempatkan external dataset juga ke library python waktu installation. Means klo ada user yang pengen pake format beda, mereka harus set ENV lagi, nambahin step yang ga perlu menurut gw. Perlu di notes di transformers, untuk dataset preparation kita bisa ngebuat dataset yang formatnya sama seperti yang mereka support kayak Glue atau SquAd dan bahkan karena mereka aware dengan berkembangnya dataset mereka bikin package sendiri untuk dataset dengan nambahin package nlp. Gw overall setuju kalau bagian rapi2 dataset ini penting untuk akomodasi public supported dataset ke depannya tapi gw ngga setuju sih klo posisi external/dataset dikatakan ambigu. Karena menurut gw purpose nya jelas :

Kalau misalnya external/dataset ditaruh di dalem vortex :

Dan gw juga challenge sih, untuk COCO gw lebih setuju sistem integrasinya kayak torchvision-dataset daripada external/dataset. Kenapa? sesimple langsung pake aja pycocotools, iterate per image diformat ke bentukan internal vortex, selesai.

Nah pertanyaannya, apakah bentuk integrasi torchvision yang sekarang udah ideal? nah menurut gw belum. Kalau untuk yang ini gw setuju bentuknya pooling. Kalau untuk external dataset menurut gw bukan pool sih bentukannya.

In SHORT :