Gaya ular piton
Ikuti panduan gaya Python PEP 8 , kecuali TensorFlow menggunakan 2 spasi, bukan 4. Harap patuhi Panduan Gaya Python Google , dan gunakan pylint untuk memeriksa perubahan Python Anda.
tiang
Untuk menginstal pylint
:
$ pip install pylint
Untuk memeriksa file dengan pylint
dari direktori root kode sumber TensorFlow:
$ pylint --rcfile=tensorflow/tools/ci_build/pylintrc tensorflow/python/keras/losses.py
Versi Python yang didukung
Untuk versi Python yang didukung, lihat panduan instalasi TensorFlow.
Lihat status build berkelanjutan TensorFlow untuk build resmi dan yang didukung komunitas.
Gaya pengkodean C++
Perubahan pada kode TensorFlow C++ harus sesuai dengan Panduan Gaya Google C++ dan detail gaya khusus TensorFlow . Gunakan clang-format
untuk memeriksa perubahan C/C++ Anda.
Untuk menginstal di Ubuntu 16+, lakukan:
$ apt-get install -y clang-format
Anda dapat memeriksa format file C/C++ dengan yang berikut:
$ clang-format <my_cc_file> --style=google > /tmp/my_cc_file.cc
$ diff <my_cc_file> /tmp/my_cc_file.cc
Bahasa lainnya
- Panduan Gaya Google Java
- Panduan Gaya JavaScript Google
- Panduan Gaya Google Shell
- Panduan Gaya Google Objective-C
Konvensi TensorFlow dan penggunaan khusus
Operasi python
Operasi TensorFlow adalah fungsi yang, dengan tensor masukan tertentu, akan mengembalikan tensor keluaran (atau menambahkan operasi ke grafik saat membuat grafik).
- Argumen pertama harus berupa tensor, diikuti dengan parameter dasar Python. Argumen terakhir adalah
name
dengan nilai defaultNone
. - Argumen tensor harus berupa tensor tunggal atau tensor yang dapat diubah. Artinya, "Tensor atau daftar Tensor" terlalu luas.
assert_proper_iterable
. - Operasi yang menggunakan tensor sebagai argumen harus memanggil
convert_to_tensor
untuk mengubah input non-tensor menjadi tensor jika menggunakan operasi C++. Perhatikan bahwa argumen masih dideskripsikan sebagai objekTensor
dengan tipe d tertentu dalam dokumentasi. - Setiap operasi Python harus memiliki
name_scope
. Seperti yang terlihat di bawah, berikan nama operasi sebagai string. - Operasi harus berisi komentar Python ekstensif dengan deklarasi Args dan Returns yang menjelaskan jenis dan arti setiap nilai. Kemungkinan bentuk, tipe, atau peringkat harus ditentukan dalam deskripsi. Lihat detail dokumentasi.
- Untuk meningkatkan kegunaan, sertakan contoh penggunaan dengan input/output operasi di bagian Contoh.
- Hindari penggunaan
tf.Tensor.eval
atautf.Session.run
secara eksplisit. Misalnya, untuk menulis logika yang bergantung pada nilai Tensor, gunakan aliran kontrol TensorFlow. Alternatifnya, batasi operasi agar hanya berjalan ketika eksekusi bersemangat diaktifkan (tf.executing_eagerly()
).
Contoh:
def my_op(tensor_in, other_tensor_in, my_param, other_param=0.5,
output_collections=(), name=None):
"""My operation that adds two tensors with given coefficients.
Args:
tensor_in: `Tensor`, input tensor.
other_tensor_in: `Tensor`, same shape as `tensor_in`, other input tensor.
my_param: `float`, coefficient for `tensor_in`.
other_param: `float`, coefficient for `other_tensor_in`.
output_collections: `tuple` of `string`s, name of the collection to
collect result of this op.
name: `string`, name of the operation.
Returns:
`Tensor` of same shape as `tensor_in`, sum of input values with coefficients.
Example:
>>> my_op([1., 2.], [3., 4.], my_param=0.5, other_param=0.6,
output_collections=['MY_OPS'], name='add_t1t2')
[2.3, 3.4]
"""
with tf.name_scope(name or "my_op"):
tensor_in = tf.convert_to_tensor(tensor_in)
other_tensor_in = tf.convert_to_tensor(other_tensor_in)
result = my_param * tensor_in + other_param * other_tensor_in
tf.add_to_collection(output_collections, result)
return result
Penggunaan:
output = my_op(t1, t2, my_param=0.5, other_param=0.6,
output_collections=['MY_OPS'], name='add_t1t2')