Placeholder dan variabel adalah alat kunci untuk menggunakan grafik komputasi di TensorFlow. Kita harus memahami perbedaannya dan kapan sebaiknya menggunakannya untuk keuntungan kita.
Variabel adalah parameter dari algoritma dan TensorFlow melacak bagaimana mengubah ini untuk mengoptimalkan algoritma. Placeholder adalah objek yang memungkinkan kita untuk memberi feed pada jenis dan bentuk data tertentu.
Cara utama untuk membuat variabel adalah dengan menggunakan fungsi Variable(), yang mengambil tensor sebagai input dan output sebuah variabel. Ini adalah deklarasi dan kita masih perlu menginisialisasi variabel. Berikut ini contoh untuk membuat dan menginisialisasi variabel:
my_var = tf.Variable(tf.zeros([2,3]))
sess = tf.Session()
initialize_op = tf.global_variables_initializer ()
sess.run(initialize_op)
Untuk melihat seperti apa grafik komputasinya setelah membuat dan menginisialisasi variabel, nanti akan kita tunjukkan.
Placeholder hanya menahan posisi agar data dimasukkan ke dalam grafik. Placeholder mengambil data dari argumen feed_dict dalam session.Untuk menempatkan placeholder di grafik, kita harus melakukan setidaknya satu operasi pada placeholder. Kita menginisialisasi grafik, menyatakan x untuk menjadi placeholder, mendefinisikan y sebagai operasi identitas pada x, yang hanya mengembalikan x.
Kita kemudian membuat data untuk melakukan feed ke placeholder x dan menjalankan operasi identitas. Perlu dicatat bahwa TensorFlow tidak akan mengembalikan placeholder yang direferensikan sendiri di kamus feed. Kode ditampilkan di sini dan grafik yang dihasilkan nanti akan kita tunjukkan:
sess = tf.Session()
x = tf.placeholder(tf.float32, shape=[2,2])
y = tf.identity(x)
x_vals = np.random.rand(2,2)
sess.run(y, feed_dict={x: x_vals})
# Perhatikan bahwa sess.run (x, feed_dict = {x: x_vals}) akan menghasilkan kesalahan referensi diri.
Grafik komputasional untuk menginisialisasi variabel sebagai tensor nol ditunjukkan pada gambar berikut:Variabel adalah parameter dari algoritma dan TensorFlow melacak bagaimana mengubah ini untuk mengoptimalkan algoritma. Placeholder adalah objek yang memungkinkan kita untuk memberi feed pada jenis dan bentuk data tertentu.
Cara utama untuk membuat variabel adalah dengan menggunakan fungsi Variable(), yang mengambil tensor sebagai input dan output sebuah variabel. Ini adalah deklarasi dan kita masih perlu menginisialisasi variabel. Berikut ini contoh untuk membuat dan menginisialisasi variabel:
my_var = tf.Variable(tf.zeros([2,3]))
sess = tf.Session()
initialize_op = tf.global_variables_initializer ()
sess.run(initialize_op)
Untuk melihat seperti apa grafik komputasinya setelah membuat dan menginisialisasi variabel, nanti akan kita tunjukkan.
Placeholder hanya menahan posisi agar data dimasukkan ke dalam grafik. Placeholder mengambil data dari argumen feed_dict dalam session.Untuk menempatkan placeholder di grafik, kita harus melakukan setidaknya satu operasi pada placeholder. Kita menginisialisasi grafik, menyatakan x untuk menjadi placeholder, mendefinisikan y sebagai operasi identitas pada x, yang hanya mengembalikan x.
Kita kemudian membuat data untuk melakukan feed ke placeholder x dan menjalankan operasi identitas. Perlu dicatat bahwa TensorFlow tidak akan mengembalikan placeholder yang direferensikan sendiri di kamus feed. Kode ditampilkan di sini dan grafik yang dihasilkan nanti akan kita tunjukkan:
sess = tf.Session()
x = tf.placeholder(tf.float32, shape=[2,2])
y = tf.identity(x)
x_vals = np.random.rand(2,2)
sess.run(y, feed_dict={x: x_vals})
# Perhatikan bahwa sess.run (x, feed_dict = {x: x_vals}) akan menghasilkan kesalahan referensi diri.
Pada Gambar diatas, kita dapat melihat seperti apa grafik komputasional secara terperinci hanya dengan satu variabel, diinisialisasi ke semua nol. Daerah yang diarsir abu-abu adalah pandangan yang sangat rinci tentang operasi dan konstanta yang terlibat. Grafik komputasional utama dengan lebih sedikit detail adalah grafik yang lebih kecil di luar wilayah abu-abu di sudut kanan atas.
Demikian pula, grafik komputasi memfeeding array numpy menjadi
placeholder dapat dilihat pada gambar berikut:
Berikut ini grafik komputasional dari placeholder yang diinisialisasi. Daerah yang diarsir abu-abu adalah pandangan yang sangat rinci tentang operasi dan konstanta yang terlibat. Grafik komputasional utama dengan lebih sedikit detail adalah grafik yang lebih kecil di luar wilayah abu-abu di kanan atas.
Selama menjalankan grafik komputasi, kita harus memberi tahu TensorFlow kapan harus menginisialisasi variabel yang telah kita buat. TensorFlow harus diinformasikan tentang kapan dapat menginisialisasi variabel. Sementara setiap variabel memiliki metode initializer, cara yang paling umum untuk melakukan ini adalah menggunakan fungsi helper, yang merupakan global_variables_initializer(). Fungsi ini menciptakan operasi dalam grafik yang menginisialisasi semua variabel yang telah kita buat, sebagai berikut:
initializer_op = tf.global_variables_initializer ()
Tetapi jika kita ingin menginisialisasi variabel berdasarkan hasil dari variabel inisialisasi awal, kita harus menginisialisasi variabel dalam urutan yang kita inginkan, sebagai berikut:
sess = tf.Session()
first_var = tf.Variable(tf.zeros([2,3]))
sess.run(first_var.initializer)
second_var = tf.Variable(tf.zeros_like(first_var))
# Depends on first_var
sess.run(second_var.initializer)
Selama menjalankan grafik komputasi, kita harus memberi tahu TensorFlow kapan harus menginisialisasi variabel yang telah kita buat. TensorFlow harus diinformasikan tentang kapan dapat menginisialisasi variabel. Sementara setiap variabel memiliki metode initializer, cara yang paling umum untuk melakukan ini adalah menggunakan fungsi helper, yang merupakan global_variables_initializer(). Fungsi ini menciptakan operasi dalam grafik yang menginisialisasi semua variabel yang telah kita buat, sebagai berikut:
initializer_op = tf.global_variables_initializer ()
Tetapi jika kita ingin menginisialisasi variabel berdasarkan hasil dari variabel inisialisasi awal, kita harus menginisialisasi variabel dalam urutan yang kita inginkan, sebagai berikut:
sess = tf.Session()
first_var = tf.Variable(tf.zeros([2,3]))
sess.run(first_var.initializer)
second_var = tf.Variable(tf.zeros_like(first_var))
# Depends on first_var
sess.run(second_var.initializer)
Menggunakan Placeholder dan Variabel
Reviewed by Jimmy Pujoseno
on
March 31, 2018
Rating:
No comments: