Mengontrol cara sumber daya TensorFlow dibersihkan saat tidak diperlukan lagi.
Semua sumber daya yang dialokasikan selama EagerSession
dihapus ketika sesi ditutup. Untuk mencegah kesalahan kehabisan memori, sangat disarankan untuk membersihkan sumber daya tersebut selama sesi. Misalnya, menjalankan n operasi dalam satu perulangan sebanyak m iterasi akan mengalokasikan minimal n*m sumber daya, sementara pada sebagian besar kasus, hanya sumber daya dari iterasi terakhir yang masih digunakan.
Instance EagerSession
dapat diberi tahu dengan berbagai cara saat objek TensorFlow tidak lagi dirujuk, sehingga instance tersebut dapat melanjutkan pembersihan resource apa pun yang dimilikinya.
Metode Warisan
Nilai Enum
EagerSession.ResourceCleanupStrategy IN_BACKGROUND final statis publik
Pantau dan hapus sumber daya yang tidak terpakai dari thread baru yang berjalan di latar belakang.
Ini adalah pendekatan paling andal untuk membersihkan sumber daya TensorFlow, dengan mengorbankan memulai dan menjalankan thread tambahan yang didedikasikan untuk tugas ini. Setiap instance EagerSession
memiliki threadnya sendiri, yang dihentikan hanya ketika sesi ditutup.
Strategi ini digunakan secara default.
EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS akhir statis publik
Pantau dan hapus sumber daya yang tidak terpakai dari thread yang ada, sebelum atau setelah menyelesaikan tugas lain.
Sumber daya yang tidak terpakai akan dilepaskan ketika panggilan ke perpustakaan TensorFlow mencapai titik aman untuk pembersihan. Hal ini dilakukan secara sinkron dan mungkin memblokir thread yang memicu panggilan tersebut untuk jangka waktu singkat.
Strategi ini sebaiknya digunakan hanya jika, karena alasan tertentu, tidak ada thread tambahan yang dialokasikan untuk pembersihan. Jika tidak, IN_BACKGROUND
sebaiknya diutamakan.
EagerSession.ResourceCleanupStrategy akhir statis publik ON_SESSION_CLOSE
Hapus sumber daya hanya saat sesi ditutup.
Semua sumber daya yang dialokasikan selama sesi akan tetap tersimpan di memori hingga sesi ditutup secara eksplisit (atau melalui teknik `coba-dengan-sumber daya` tradisional). Tidak ada tugas tambahan untuk pembersihan sumber daya yang akan dilakukan.
Strategi ini dapat menyebabkan kesalahan kehabisan memori dan penggunaannya tidak disarankan, kecuali cakupan sesi dibatasi untuk menjalankan sejumlah kecil operasi saja.