149 Views

Format penyimpanan ada banyak yang kita kenal, terutama format terbuka yaitu XML, JSON ataupun bila kalian menggunakan bahasa C#, JAVA dikenal dengan teknik serialisasi sedangkan untuk python menggunakan pickle yang merupakan format penyimpanan objek berbasis biner. Dengan semakin banyaknya aplikasi yang berkembang membutuhkan format decoding-encoding yang baik dan terbuka serta mampu menerima beragam format yang ada, hal tersebut bisa kalian gunakan format HDF5. HDF5 disupport oleh https://www.hdfgroup.org/ dengan menawarkan beberapa keunggulan berupa

  1. Heterogeneous Data
  2. Easy Sharing
  3. Cross Platform
  4. Fast I/O
  5. Big Data
  6. Keep Metadata with Data

HDF5 singkatan dari hierarchical data format 5 adalah teknologi open source untuk menyatukan data dari beragam jenis data dan kompleksitas tinggi. HDF5 secara khusus di desain untuk

  1. Volume tinggi dan data yang kompleks
  2. Untuk beragam jenis ukuran dan sistem operasi
  3. Fleksible dan IO storage yang efisien

Salah satu keunggulan dari HDF5 yaitu seperti layaknya penyimpan data pada umumnya yang terdapat adanya folder maka HDF5 bisa menyimpan beragam data seperti PDF, matrix, XML dan lain banyak hal.

Hierarchical Data Format versi 5 (HDF5), adalah format file sumber terbuka yang mendukung data yang besar, kompleks, dan heterogen. HDF5 menggunakan struktur seperti “direktori file” yang memungkinkan kalian untuk mengatur data di dalam file dengan berbagai cara terstruktur, seperti yang mungkin kalian lakukan dengan file di komputer. Format HDF5 juga memungkinkan untuk embedding metadata membuatnya self-describing karena berisi meta data.

Hierarchical Structure

Format HDF5 dapat dianggap sebagai sistem file dalam satu file tunggal. Kalian bisa membayangkan mengenai file dan folder yang tersimpan di komputer yang mungkin memiliki direktori data. Misalkan kalian punya data monitoring suhu disetiap ruangan sehingga sangat jelas sekali bahwa seperti layaknya sebuah file excel yang mempunyai sheet.  Data suhu ini dikumpulkan setiap menit dan dirangkum setiap jam, harian, dan mingguan. Dalam satu file HDF5, kalian dapat menyimpan kumpulan data serupa yang diorganisasikan dengan cara yang sama seperti halnya mengatur file dan folder di komputer. Namun dalam file HDF5, apa yang kita sebut “direktori” atau “folder” di komputer kita, disebut group dan apa yang kita sebut file di komputer kita disebut dataset.

2 Hal penting dalam format HDF5 yaitu

  1. Group: Elemen seperti folder dalam file HDF5 yang mungkin berisi grup lain ATAU kumpulan data di dalamnya.
  2. Dataset:  Data aktual yang terkandung dalam file HDF5. Kumpulan data disimpan dalam Group.

 

File HDF5 yang berisi dataset, Misalkan disusun seperti ini:

HDF5 is a Self Describing Format

Format HDF5 adalah self describing format artinya bahwa mampu menggambarkan diri sendiri. Ini berarti bahwa setiap file, grup, dan dataset dapat memiliki metadata terkait yang menjelaskan dengan tepat apa data tersebut. Dengan mengikuti contoh di atas, misalkan kita dapat menanamkan informasi tentang setiap ke file, seperti layaknya sebuah file *.mp3 yang berisi metadata mengenai

  1. Judul Lagu
  2. Pengarang
  3. Cover Album

Hal yang menarik dengan self describing format yaitu  memiliki metadata yang dilampirkan pada setiap file, group, dan dataset, yang memungkinkan otomatisasi tanpa memerlukan dokumen metadata yang terpisah (dan tambahan). Menggunakan bahasa pemrograman, seperti R atau Python, kita bisa mengambil informasi dari metadata yang sudah dikaitkan dengan dataset, dan yang mungkin kita perlukan untuk memproses dataset secara otomatis tanpa perlu menggunakan sebuah key (seperti format JSON, XML)

Compressed & Efficient

Nah ini yang disukai yaitu ukuran yang kecil karena Format HDF5 adalah format terkompresi. Ukuran semua data yang terkandung dalam HDF5 dioptimalkan yang membuat ukuran file keseluruhan lebih kecil. Bahkan ketika dikompresi, bila file HDF5  mengandung data besar dengan Atribut HDF5 adalah data slicing sehingga dengan teknik tersebut kita bisa akses subset tertentu tanpa loading secara menyeluruh dalam arti lain berarti bahwa seluruh dataset tidak harus dibaca ke dalam memori (RAM); sangat membantu  kalian bekerja secara lebih efisien dengan dataset sangat besar. Analoginya begini ketika kalian play sebuah data video yang berformat HD, maka secara efisien data tersebut tidak serta merta di loading secara penuh di RAM akan tetapi dilakukan buffering sesuai dengan time nya (durasi).

Heterogeneous Data Storage

Alias format data tunggal, kalian bisa menyimpan data *.docx, *.xlsx, *.mp3 dalam 1 kompresi data itulah keunggulan HDF5.  File HDF5 dapat menyimpan berbagai jenis data di dalam file yang sama. Sebagai contoh, satu grup dapat berisi satu set dataset untuk berisi data integer (numerik) dan teks (string). Atau, satu dataset dapat berisi tipe data yang heterogen (mis., Data teks dan numerik dalam satu dataset).

Open Format

Yups format data yang bersifat terbuka yang artinya kalian bisa membuat sendiri aplikasi untuk proses encoding dan decoding tanpa takut terkena pelanggaran HAKI. HDF5 didukung secara luas termasuk bahasa pemrograman open source seperti R dan Python, dan alat pemrograman komersial seperti Matlab pun juga bisa membaca format HDf5. Data spasial yang disimpan dalam format HDF5 dapat digunakan dalam GIS dan program pencitraan termasuk QGIS, ArcGIS, dan ENVI.

Viewer Format  Data HDF5

Pada tutorial sebelumnya https://softscients.com/2020/03/30/buku-pengolahan-citra-digital-dengan-python-dan-opencv-pengenalan-angka-tulisan-tangan-dengan-deep-learning-convolutional-network/  kalian bisa membaca bahwa format penyimpanan model tersebut menggunakan 2 yaitu arsitektur jaringan disimpan dalam format JSON dan HDF5 sebagai format penyimpanan bobot dan bias. Untuk menampilkan bobot dan bias di format HDF5 kalian bisa menggunakan di link berikut https://support.hdfgroup.org/products/java/release/download.html. Aplikasi tersebut sangat ringan dan cross platform karena ditulis menggunakan bahasa Java. Berikut tampilan aplikasi ketika membuka sebuah format hdf5 *.h5 hasil dari pelatihan sebuah model deep learning CNN convolution neural network yang berisi data array bias dan kernel dari setiap layer

Sedangkan untuk library yang ditulis dengan python yaitu https://www.h5py.org/

Leave a Reply

Your email address will not be published. Required fields are marked *

72 ÷ = 12