Keras là một thư viện cấp mô hình, cung cấp các khối xây dựng cấp cao rất hữu ích để phát triển các mô hình học sâu. Thay vì hỗ trợ các hoạt động cấp thấp như Theano, TensorFlow, và CNTK,…, bản thân nó phụ thuộc vào công cụ phụ trợ có thư viện thao tác tensor chuyên biệt và được tối ưu hóa tốt. Nó không chỉ chọn một thư viện của tensor để triển khai Keras gắn với thư viện cụ thể đó. Nó xử lý tình huống theo cách mô-đun bằng cách kết nối liền mạch nhiều động cơ back-end riêng biệt cho Keras.
Các bài viết liên quan:
Sau đây là ba cách triển khai phụ trợ có sẵn, như sau;
- TensorFlow: Khung do Google phát triển để thao tác tensor tượng trưng này là mã nguồn mở.
- Theano: Nó cũng là một khung mã nguồn mở để thao tác biểu tượng của tensor được phát triển tại Đại học Montreal bởi Phòng thí nghiệm LISA.
- CNTK: Nó được phát triển bởi Microsoft, đây cũng là một bộ công cụ học sâu mã nguồn mở.
Chuyển từ chương trình phụ trợ này sang chương trình phụ trợ khác
Bạn có thể sẽ tìm thấy tệp cấu hình Keras tại:
$HOME/.keras/keras.json
Trong trường hợp bạn gặp sự cố khi tìm nó ở đó, thì bạn có thể tạo một cái!
Lưu ý: Đặc biệt đối với người dùng Windows, bạn phải thay thế $ HOME bằng% USERPROFILE%.
Sau đây là cấu hình mặc định;
{ "image_data_format": "channels_last", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" }
Ở đây, bạn chỉ cần thay đổi trường phụ trợ thành “theano” , “tensorflow” hoặc “cntk”, và sau đó Keras sẽ sử dụng cấu hình đã sửa đổi khi bạn chạy bất kỳ mã Keras nào.
Khi bạn xác định biến môi trường KERAS_BACKEND , biến đó sẽ ghi đè bất kỳ thứ gì được xác định bên trong tệp cấu hình của bạn:
KERAS_BACKEND=tensorflow python -c “from keras import backend”
Using TensorFlow backend.
Có thể bạn có thể tải thêm nhiều phụ trợ trong Keras sau đó là “tensorflow” , “theano” hoặc “cntk” vì nó có thể dễ dàng sử dụng các phụ trợ bên ngoài. Điều này có thể được thực hiện bằng cách thay đổi keras.json và cài đặt “phụ trợ” . Giả sử bạn có một mô-đun Python có tên là my_module để được sử dụng như một phần phụ trợ bên ngoài; sau đó, trong trường hợp đó, tệp keras.json có thể trải qua một số thay đổi, như sau;
{ "image_data_format": "channels_last", "epsilon": 1e-07, "floatx": "float32", "backend": "my_package.my_module" }
Để sử dụng một chương trình phụ trợ bên ngoài, nó phải được xác thực và bao gồm các hàm như trình giữ chỗ , biến và hàm .
Nếu chương trình phụ trợ bên ngoài không hợp lệ thì nó có thể tạo ra lỗi có thể chứa tất cả các mục bị thiếu.
Chi tiết về keras.json
Sau đây là các cài đặt có trong tệp keras.json :
{ "image_data_format": "channels_last", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" }
Có thể sửa đổi cài đặt một cách đơn giản bằng cách chỉnh sửa $ HOME / .keras / keras.json .
- image_data_format: Nó có thể được định nghĩa là một chuỗi, là “channel_last” hoặc “channel_first”, chỉ định định dạng dữ liệu quy ước theo sau là Keras. (Nó được trả về bởi backend.image_data_format () ).
- Đối với bất kỳ dữ liệu hai chiều nào như hình ảnh, “channel_last” sẽ giả định (hàng, cột, kênh) , trong khi “kênh_first” sẽ giả định (kênh, hàng, cột) .
- Đối với bất kỳ dữ liệu ba chiều nào, “channel_last” sẽ liên quan đến (var_dim1, amb_dim2, var_dim3, channel) , trong khi “channel_first” sẽ liên quan đến (channel, convert_dim1, amb_dim2, amb_dim3) .
- epsilon: Nó đề cập đến một float, là một hằng số mờ được sử dụng để tránh phép chia cho số 0 trong một số phép toán.
- floatx: Nó chỉ ra một chuỗi “float16” , “float32” hoặc “float64” . Theo mặc định, nó là float precision.
- backend: Nó đề cập đến một chuỗi “tensorflow”, “theano” hoặc “cntk”.
Cách sử dụng phụ trợ Keras trừu tượng để viết mã mới
Với sự trợ giúp của API phụ trợ Keras trừu tượng, bạn có thể làm cho mô-đun Keras đã viết của mình tương thích hơn với cả Theano ( th ) và TensorFlow ( tf ). Sau đây là phần giới thiệu về nó;
Mô-đun phụ trợ có thể được nhập thông qua:
from keras import backend as K
Một trình giữ chỗ đầu vào sẽ được khởi tạo bởi mã được cung cấp bên dưới, bằng tf.placeholder () hoặc th.tensor.matrix (), th.tensor.tensor3 () , v.v.
inputs = K.placeholder(shape=(2, 4, 5)) # also works: inputs = K.placeholder(shape=(None, 4, 5)) # also works: inputs = K.placeholder(ndim=3)
Một biến sẽ được khởi tạo bằng cách kết hợp mã sau, đổi lại bằng tf.Variable () hoặc th.shared () .
import numpy as np val = np.random.random((3, 4, 5)) var = K.variable(value=val) # all-zeros variable: var = K.zeros(shape=(3, 4, 5)) # all-ones: var = K.ones(shape=(3, 4, 5))
Hầu hết các hoạt động tensor mà bạn có thể yêu cầu sẽ được thực hiện theo cách tương tự như bạn sẽ thực hiện trong TensorFlow hoặc Theano như sau:
# Initializing Tensors with Random Numbers b = K.random_uniform_variable(shape=(3, 4), low=0, high=1) # Uniform distribution c = K.random_normal_variable(shape=(3, 4), mean=0, scale=1) # Gaussian distribution d = K.random_normal_variable(shape=(3, 4), mean=0, scale=1) # Tensor Arithmetic a = b + c * K.abs(d) c = K.dot(a, K.transpose(b)) a = K.sum(b, axis=1) a = K.softmax(b) a = K.concatenate([b, c], axis=-1) # etc...
Các chức năng backend
- backend
keras.backend.backend ()
Hàm phụ trợ được sử dụng để hoàn nguyên tên phụ trợ hiện tại.
Nó trả về một chuỗi liên quan đến tên hiện tại của phần hỗ trợ đang được sử dụng.
Thí dụ
>>> keras.backend.backend() 'tensorflow'
keras.backend.symbolic (func)
Nó có thể được định nghĩa như một trình trang trí, được sử dụng trong TensorFlow 2.0 để nhập biểu đồ Keras.
Arguments
func: Nó đề cập đến một chức năng được sử dụng để trang trí.
Returns
Nó trả về một chức năng được trang trí.
- eager
keras.backend.eager (func)
Nó có thể được định nghĩa như một trình trang trí, được sử dụng trong TensorFlow 2.0 để thoát khỏi biểu đồ Keras.
Argument
- func: Nó đề cập đến một chức năng được sử dụng để trang trí.
Return: Nó trả về một chức năng được trang trí.
- get_uid
keras.backend.get_uid (prefix = '' )
Nó cung cấp một UID duy nhất cung cấp tiền tố chuỗi.
Argument
- tiền tố: Nó đề cập đến một chuỗi.
Return
Hàm phụ trợ này trả về một số nguyên.
Thí dụ
>>> keras.backend.get_uid('dense') 1 >>> keras.backend.get_uid('dense') 2
- epsilon
Hàm này được sử dụng để thiết lập cờ khởi tạo biến thủ công. Cờ được biểu thị dưới dạng Boolean chi phối một biến được khởi tạo hoặc người dùng phải xử lý quá trình khởi tạo vì chúng được tự khởi tạo theo mặc định.
Argument
- value: Nó đề cập đến giá trị Boolean của Python.
Return
Nó trả về một float.
Thí dụ
>>> keras.backend.epsilon() 1e-07
- reset_uids
keras.backend.reset_uids ()
Nó được sử dụng để đặt lại các định danh đồ thị.
- set_epsilon
keras.backend.set_epsilon (e)
Nó được sử dụng để đặt giá trị yếu tố mờ, đang được sử dụng trong các biểu thức số.
Argument
e: Nó có thể được định nghĩa là một giá trị float đại diện cho giá trị mới của epsilon.
Thí dụ
>>> from keras import backend as K >>> K.epsilon() 1e-07 >>> K.set_epsilon(1e-05) >>> K.epsilon() 1e-05
- floatx
keras.backend.floatx ()
Nó được sử dụng để xuất một chuỗi kiểu float, chẳng hạn như ‘float16’, ‘float32’, ‘float64’.
Argument
Nó trả về một chuỗi kiểu float mặc định hiện tại.
Thí dụ
>>> keras.backend.floatx() 'float32'
- set_floatx
keras.backend.set_floatx (floatx)
Nó được sử dụng để đặt giá trị kiểu float mặc định.
Argument
- floatx: Nó đề cập đến một chuỗi kiểu float, chẳng hạn như ‘float16’, ‘float32’ hoặc ‘float64’.
Thí dụ
>>> from keras import backend as K >>> K.floatx() 'float32' >>> K.set_floatx('float16') >>> K.floatx() 'float16'
- Raises
ValueError: Bất cứ khi nào có giá trị không hợp lệ, ValueError sẽ được tạo.
- cast_to_floatx
keras.backend.cast_to_floatx (x)
Nó được sử dụng để truyền một mảng Numpy sang kiểu float Keras mặc định.
Argument
- x: Nó đề cập đến mảng Numpy.
Return
Nó trả về cùng một mảng Numpy đang được chuyển sang kiểu mới của nó.
Thí dụ
>>> from keras import backend as K >>> K.floatx() 'float32' >>> arr = numpy.array([1.0, 2.0], dtype='float64') >>> arr.dtype dtype('float64') >>> new_arr = K.cast_to_floatx(arr) >>> new_arr array([ 1., 2.], dtype=float32) >>> new_arr.dtype dtype('float32')
- image_data_format
keras.backend.image_data_format ()
Nó được sử dụng để trả về quy ước định dạng dữ liệu hình ảnh mặc định.
Return
Nó trả về một chuỗi ‘channel_first’ hoặc ‘channel_last’
Thí dụ
>>> keras.backend.image_data_format() 'channels_first'
- set_image_data_format
keras.backend.set_image_data_format (data_format)
Hàm này được sử dụng để thiết lập giá trị của quy ước định dạng dữ liệu.
Argument
data_format: Nó có thể được định nghĩa là một chuỗi ‘ channel_first ‘ hoặc ‘ channel_last ‘.
Thí dụ
>>> from keras import backend as K >>> K.image_data_format() 'channels_first' >>> K.set_image_data_format('channels_last') >>> K.image_data_format() 'channels_last'
- learning_phase
keras.backend.learning_phase ()
Nó xuất ra cờ của một giai đoạn học, đề cập đến một tensor bool (0 = test, 1 = train) được chuyển làm đầu vào cho bất kỳ hàm Keras nào sử dụng một hành vi riêng biệt cả ở thời gian đào tạo và kiểm tra.
Return
Nó trả về một số nguyên vô hướng tensor hoặc số nguyên Python của giai đoạn học.
- set_learning_phase
keras.backend.set_learning_phase (giá trị)
Nó được sử dụng để đặt một giá trị cố định cho giai đoạn học tập.
Argument
- value: Nó có thể được định nghĩa là một số nguyên đại diện cho giá trị của giai đoạn học là 0 hoặc 1.
Raises
- ValueError: Nó được nâng lên nếu giá trị không phải là 0 hoặc 1.
- clear_session
keras.backend.clear_session ()
Nó được sử dụng để thiết lập lại từng trạng thái do Keras tạo ra. Trạng thái toàn cục được sử dụng để triển khai API xây dựng mô hình chức năng cũng như để thống nhất các tên lớp được tạo tự động do Keras xử lý.
Khi nhiều mô hình được xây dựng trong một vòng lặp, thì trạng thái chung của bộ nhớ ngày càng tăng trong một khoảng thời gian nhất định sẽ bị tiêu thụ bởi trạng thái chung, bạn sẽ muốn xóa nó.
Nó được sử dụng để phá hủy biểu đồ hiện tại của Keras và tạo một biểu đồ mới. Nó rất hữu ích vì nó tránh được sự lộn xộn từ các mô hình / lớp cũ.
Ví dụ 1: gọi clear_session () trong khi tạo các mô hình trong một vòng lặp.
for _ in range(100): # Without `clear_session()`, each iteration of this loop will # slightly increase the size of the global state managed by Keras model = tf.keras.Sequential([tf.keras.layers.Dense(10) for _ in range(10)]) for _ in range(100): # With `clear_session()` called at the beginning, # Keras starts with a blank state at each iteration # and memory consumption is constant over time. tf.keras.backend.clear_session() model = tf.keras.Sequential([tf.keras.layers.Dense(10) for _ in range(10)])
Ví dụ 2: Đặt lại bộ đếm tạo tên lớp.
>>> import tensorflow as tf >>> layers = [tf.keras.layers.Dense(10) for _ in range(10)] >>> new_layer = tf.keras.layers.Dense(10) >>> print(new_layer.name) dense_10 >>> tf.keras.backend.set_learning_phase(1) >>> print(tf.keras.backend.learning_phase()) 1 >>> tf.keras.backend.clear_session() >>> new_layer = tf.keras.layers.Dense(10) >>> print(new_layer.name) dense
- is_sparse
keras.backend.is_sparse (tensor)
Nó được sử dụng để trả về liệu một tensor có phải là tensor thưa thớt hay không.
Argument
- tensor: Nó đề cập đến một trường hợp của tensor.
Return
Nó trả về một Boolean.
Thí dụ
>>> from keras import backend as K >>> a = K.placeholder((2, 2), sparse=False) >>> print(K.is_sparse(a)) False >>> b = K.placeholder((2, 2), sparse=True) >>> print(K.is_sparse(b)) True
- to_dense
keras.backend.to_dense (tensor)
Nó được sử dụng để chuyển đổi một tensor thưa thành tensor dày đặc và trả về nó.
Argument
- tensor: Nó đề cập đến một trường hợp của tensor (có thể thưa thớt).
Return
Nó trả về một tensor dày đặc.
Thí dụ
>>> from keras import backend as K >>> b = K.placeholder((2, 2), sparse=True) >>> print(K.is_sparse(b)) True >>> c = K.to_dense(b) >>> print(K.is_sparse(c)) False
- variable
keras.backend.variable(value, dtype=None, name=None, constraint=None)
Nó giúp khởi tạo một biến và trả về nó.
argument
- value: Nó có thể được định nghĩa là một mảng numpy đại diện cho giá trị ban đầu của tensor.
- dtype: Nó đề cập đến loại Tensor.
- name: Đối với một tensor, nó chỉ ra một tên chuỗi.
- constraint: Nó đề cập đến một chức năng chiếu tùy chọn được triển khai trên biến sau khi cập nhật trình tối ưu hóa.
Return
Nó trả về một phiên bản của một biến chứa siêu dữ liệu Keras.
Thí dụ
>>> from keras import backend as K >>> val = np.array([[1, 2], [3, 4]]) >>> kvar = K.variable(value=val, dtype='float64', name='example_var') >>> K.dtype(kvar) 'float64' >>> print(kvar) example_var >>> K.eval(kvar) array([[ 1., 2.], [ 3., 4.]])
- is_variable
keras.backend.is_variable (x)
- Constaint
keras.backend.constant (value, dtype = None, shape = None, name = None)
Nó dẫn đến việc tạo ra một tensor duy nhất.
Arguemt
- value: Nó đề cập đến giá trị không đổi hoặc một danh sách.
- dtype: Nó đề cập đến loại Tensor.
- name: Đối với một tensor, nó chỉ ra một tên chuỗi.
- shape: Nó có thể được định nghĩa là kích thước của tensor kết quả, là một tùy chọn.
Return
Nó cũng trả về một Tensor duy nhất.
- is_keras_tensor
keras.backend.is_keras_tensor (x)
Nó xuất ra liệu x có phải là tensor Keras hay không. Một “tensor Keras” là một tensor được trả về bởi một lớp Keras, ( Lớp lớp) hoặc bởi Đầu vào .
Argument
- x: Nó đề cập đến một tensor ứng viên.
return
Nó trả về một Boolean đại diện cho việc đối số có phải là tensor Keras hay không.
Raises
Nó làm tăng lỗi ValueError nếu x không phải là tensor tượng trưng.
Thí dụ
>>> from keras import backend as K >>> from keras.layers import Input, Dense >>> np_var = numpy.array([1, 2]) >>> K.is_keras_tensor(np_var) # A numpy array is not a symbolic tensor. ValueError >>> k_var = tf.placeholder('float32', shape=(1,1)) >>> # A variable indirectly created outside of keras is not a Keras tensor. >>> K.is_keras_tensor(k_var) False >>> keras_var = K.variable(np_var) >>> # A variable created with the keras backend is not a Keras tensor. >>> K.is_keras_tensor(keras_var) False >>> keras_placeholder = K.placeholder(shape=(2, 4, 5)) >>> # A placeholder is not a Keras tensor. >>> K.is_keras_tensor(keras_placeholder) False >>> keras_input = Input([10]) >>> K.is_keras_tensor(keras_input) # An Input is a Keras tensor. True >>> keras_layer_output = Dense(10)(keras_input) >>> # Any Keras layer output is a Keras tensor. >>> K.is_keras_tensor(keras_layer_output) True
- is_tensor
keras.backend.is_tensor (x)
placeholder
keras.backend.placeholder (shape = none, ndim = none, dtype = none, sparse = False, name = None)
Nó giúp khởi tạo một tensor trình giữ chỗ và trả lại nó.
Argument
- shape: Nó có thể được định nghĩa là một số nguyên bộ, có thể kết hợp Không mục nào giúp thể hiện Hình dạng của placeholder.
- ndim: Nó đề cập đến số lượng trục của tensor, chỉ định ít nhất một trong { shape , ndim }. Hình dạng được sử dụng, nếu cả hai đều được chỉ định.
- dtype: Nó xác định loại Trình giữ chỗ.
- thưa thớt: Nó có thể được định nghĩa là một Boolean đại diện cho việc trình giữ chỗ có kiểu thưa thớt hay không.
- name: Đây là một đối số tùy chọn xác định một chuỗi cho tên của người giữ chỗ.
Return
Nó trả về một thể hiện của Tensor bằng cách bao gồm siêu dữ liệu Keras.
Thí dụ
>>> from keras import backend as K >>> input_ph = K.placeholder(shape=(2, 4, 5)) >>> input_ph._keras_shape (2, 4, 5) >>> input_ph <tf.Tensor 'Placeholder_4:0' shape=(2, 4, 5) dtype=float32>
- is_placeholder
keras.backend.is_placeholder (x)
Nó trả về nếu x có phải là trình giữ chỗ hay không.
Argument
- x: Nó có thể được định nghĩa là một trình giữ chỗ ứng viên.
Return
Nó trả về một Boolean.
- shape
keras.backend.shape (x)
Nó xuất ra hình dạng biểu tượng của một tensor hoặc một biến.
Argument
- x: Nó đề cập đến một tensor hoặc một biến.
Return
Nó trả về một tensor hình dạng tượng trưng.
Các ví dụ
# TensorFlow example >>> from keras import backend as K >>> tf_session = K.get_session() >>> val = np.array([[1, 2], [3, 4]]) >>> kvar = K.variable(value=val) >>> inputs = keras.backend.placeholder(shape=(2, 4, 5)) >>> K.shape(kvar) <tf.Tensor 'Shape_8:0' shape=(2,) dtype=int32> >>> K.shape(inputs) <tf.Tensor 'Shape_9:0' shape=(3,) dtype=int32> # To get integer shape (Instead, you can use K.int_shape(x)) >>> K.shape(kvar).eval(session=tf_session) array([2, 2], dtype=int32) >>> K.shape(inputs).eval(session=tf_session) array([2, 4, 5], dtype=int32)
- int_shape
keras.backend.int_shape (x)
Nó có thể được định nghĩa là một bộ int hoặc None mục nhập xuất ra tensor hoặc hình dạng của một biến.
Argument
- x: Nó đề cập đến một tensor hoặc một biến.
Return
Nó trả về một bộ số nguyên hoặc Không có mục nhập nào.
Thí dụ
>>> from keras import backend as K >>> inputs = K.placeholder(shape=(2, 4, 5)) >>> K.int_shape(inputs) (2, 4, 5) >>> val = np.array([[1, 2], [3, 4]]) >>> kvar = K.variable(value=val) >>> K.int_shape(kvar) (2, 2)
Triển khai Numpy
def int_shape(x): return x.shape
- ndim
keras.backend.ndim (x)
Nó đề cập đến một số nguyên được trả về dưới dạng số trục trong một tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
Return
Nó xuất ra số lượng trục dưới dạng giá trị số nguyên.
Thí dụ
>>> from keras import backend as K >>> inputs = K.placeholder(shape=(2, 4, 5)) >>> val = np.array([[1, 2], [3, 4]]) >>> kvar = K.variable(value=val) >>> K.ndim(inputs) 3 >>> K.ndim(kvar) 2
Triển khai numpy
def ndim(x): return x.ndim
- Size
- keras.backend.size (x, name = None)
Nó xuất ra kích thước tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- name: Đây là một đối số từ khóa tùy chọn đại diện cho tên của hoạt động.
Return
Nó trả về kích thước của tensor.
Thí dụ
>>> from keras import backend as K >>> val = np.array([[1, 2], [3, 4]]) >>> kvar = K.variable(value=val) >>> K.size(inputs) <tf.Tensor: id=9, shape=(), dtype=int32, numpy=4>
- dtype
keras.backend.dtype (x)
Nó có thể được định nghĩa là một chuỗi, được trả về dưới dạng một loại dtype của một tensor hoặc biến Keras.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
Return
Đối với x, nó trả về loại dtype của nó.
Thí dụ
>>> from keras import backend as K >>> K.dtype(K.placeholder(shape=(2,4,5))) 'float32' >>> K.dtype(K.placeholder(shape=(2,4,5), dtype='float32')) 'float32' >>> K.dtype(K.placeholder(shape=(2,4,5), dtype='float64')) 'float64' # Keras variable >>> kvar = K.variable(np.array([[1, 2], [3, 4]])) >>> K.dtype(kvar) 'float32_ref' >>> kvar = K.variable(np.array([[1, 2], [3, 4]]), dtype='float32') >>> K.dtype(kvar) 'float32_ref'
Triển khai
def dtype(x): return x.dtype.name
- eval
keras.backend.eval (x)
Nó giúp đánh giá giá trị tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor.
Return
Nó xuất ra một mảng Numpy.
Thí dụ
>>> from keras import backend as K >>> kvar = K.variable(np.array([[1, 2], [3, 4]]), dtype='float32') >>> K.eval(kvar) array([[ 1., 2.], [ 3., 4.]], dtype=float32)
Triển khai
def eval(x): return x
- zeros
keras.backend.zeros (shape, dtype = None, name = None)
Nó giúp khởi tạo các biến đó là tất cả các số không, sau đó trả về nó.
Argument
- shape: Nó có thể được định nghĩa là một bộ số nguyên đại diện cho hình dạng của biến Keras được trả về.
- dtype: Nó đề cập đến một chuỗi tương ứng với kiểu dữ liệu của biến Keras được trả về.
- name: Nó tham chiếu đến chuỗi đại diện cho tên của biến Keras được trả về.
Return
Nó trả về một biến bao gồm siêu dữ liệu Keras, được điền bằng 0,0. Cần lưu ý rằng nếu nó là hình dạng tượng trưng, thì một biến không thể được trả về thay vì một tensor hình động sẽ được trả về.
Thí dụ
>>> from keras import backend as K >>> kvar = K.zeros((3,4)) >>> K.eval(kvar) array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]], dtype=float32)
Triển khai
def zeros(shape, dtype=floatx(), name=None): return np.zeros(shape, dtype=dtype)
- ones
keras.backend.ones (shape, dtype = None, name = None)
Nó hữu ích trong việc Thuyết minh một biến tất cả, sau đó trả về nó.
Argument
- shape: Nó có thể được định nghĩa là một bộ số nguyên đại diện cho hình dạng của biến Keras được trả về.
- dtype: Nó đề cập đến một chuỗi tương ứng với kiểu dữ liệu của biến Keras được trả về.
- name: Nó tham chiếu đến chuỗi đại diện cho tên của biến Keras được trả về.
Return
Nó trả về một biến Keras, được điền bằng 0,0. Cần lưu ý rằng nếu nó là hình dạng tượng trưng, thì một biến không thể được trả về thay vì một tensor hình động sẽ được trả về.
Thí dụ
>>> from keras import backend as K >>> kvar = K.ones((3,4)) >>> K.eval(kvar) array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], dtype=float32)
Triển khai
def ones(shape, dtype=floatx(), name=None): return np.ones(shape, dtype=dtype)
- eye
keras.backend.eye (size, dtype = None, name = None)
Nó giúp tạo ra một ma trận nhận dạng sau đó trả về nó.
Argument
- size: Nó có thể được định nghĩa dưới dạng một bộ xác định số hàng và cột hoặc một số nguyên đại diện cho số hàng.
- dtype: Nó đề cập đến một chuỗi tương ứng với kiểu dữ liệu của biến Keras được trả về.
- name: Nó tham chiếu đến chuỗi đại diện cho tên của biến Keras được trả về.
return
Nó xuất ra một biến Keras đại diện cho một ma trận nhận dạng.
Thí dụ
>>> from keras import backend as K >>> K.eval(K.eye(3)) array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]], dtype=float32) >>> K.eval(K.eye((2, 3))) array([[1., 0., 0.], [0., 1., 0.]], dtype=float32)
Triển khai
def eye(size, dtype=None, name=None): if isinstance(size, (list, tuple)): n, m = size else: n, m = size, size return np.eye(n, m, dtype=dtype)
- zeros_like
keras.backend.zeros_like (x, dtype = None, name = None)
Nó giúp khởi tạo biến hình dạng tương tự mà tất cả đều là số không như một tensor khác.
Argument
- x: Nó có thể được định nghĩa là biến Keras hoặc tensor Keras.
- dtype: Nó đề cập đến một chuỗi tương ứng với kiểu dữ liệu của biến Keras được trả về. Ở đây, None liên quan đến việc sử dụng x dtype.
- name: Nó tham chiếu đến chuỗi đại diện cho tên của biến Keras được trả về.
Return
Nó trả về một biến Keras chứa đầy tất cả các số không tạo thành hình dạng của x.
Thí dụ
>>> from keras import backend as K >>> kvar = K.variable(np.random.random((2,3))) >>> kvar_zeros = K.zeros_like(kvar) >>> K.eval(kvar_zeros) array([[ 0., 0., 0.], [ 0., 0., 0.]], dtype=float32)
Triển khai
def zeros_like(x, dtype=floatx(), name=None): return np.zeros_like(x, dtype=dtype)
- ones_like
keras.backend.ones_like (x, dtype = None, name = None)
Nó giúp khởi tạo biến hình dạng tương tự mà tất cả đều là biến thể như một tensor khác.
Argument
- x: Nó có thể được định nghĩa là biến Keras hoặc tensor Keras.
- dtype: Nó đề cập đến một chuỗi tương ứng với kiểu dữ liệu của biến Keras được trả về. Ở đây, None liên quan đến việc sử dụng x dtype.
- name: Nó tham chiếu đến chuỗi đại diện cho tên của biến Keras được trả về.
Return
Nó trả về một biến Keras chứa đầy tất cả các số không tạo thành hình dạng của x.
Thí dụ
>>> from keras import backend as K >>> kvar = K.variable(np.random.random((2,3))) >>> kvar_ones = K.ones_like(kvar) >>> K.eval(kvar_ones) array([[ 1., 1., 1.], [ 1., 1., 1.]], dtype=float32)
Triển khai
def ones_like(x, dtype=floatx(), name=None): return np.ones_like(x, dtype=dtype)
- identity
keras.backend.identity(x, name=None)
Nó tạo ra một tensor có nội dung tương tự như nội dung của tensor đầu vào.
Argument
- x: Nó đề cập đến tenxơ đầu vào.
- name: Nó đề cập đến chuỗi đại diện cho tên của biến, biến này phải được tạo.
Return
Nó trả về một tensor có cùng hình dạng, kiểu cũng như nội dung.
- random_uniform_variable
keras.backend.random_uniform_variable (shape, low, high, dtype = None, name = None, seed = None)
Nó nhấn mạnh vào việc khởi tạo một biến có các giá trị của nó được rút ra từ một phân phối đồng đều.
Argument
- shape: Nó có thể được định nghĩa là một bộ số nguyên đại diện cho hình dạng của biến Keras được trả về.
- low: Nó chỉ ra một giá trị float đại diện cho giới hạn dưới của khoảng đầu ra.
- high: Nó đề cập đến một giá trị float, đại diện cho ranh giới trên của khoảng đầu ra.
- dtype: Nó đề cập đến một chuỗi tương ứng với kiểu dữ liệu của biến Keras được trả về.
- name: Nó có thể được định nghĩa là một chuỗi liên quan đến tên của biến Keras được trả về.
- hạt giống: Nó có thể được định nghĩa là một số nguyên đại diện cho một hạt giống ngẫu nhiên.
Return
Nó xuất ra một biến Keras đã được lấp đầy bởi các mẫu đã vẽ.
Thí dụ
# TensorFlow example >>> kvar = K.random_uniform_variable((2,3), 0, 1) >>> kvar <tensorflow.python.ops.variables.Variable object at 0x10ab40b10> >>> K.eval(kvar) array([[ 0.10940075, 0.10047495, 0.476143 ], [ 0.66137183, 0.00869417, 0.89220798]], dtype=float32)
Triển khai
def random_uniform_variable(shape, low, high, dtype=None, name=None, seed=None): return (high - low) * np.random.random(shape).astype(dtype) + low
- random_normal_variable
keras.backend.random_normal_variable (shape, mean, scale, dtype = None, name = None, seed = None)
Nó hỗ trợ trong việc khởi tạo một biến có giá trị được lấy từ phân phối chuẩn.
Argument
- shape: Nó có thể được định nghĩa là một bộ số nguyên đại diện cho hình dạng của biến Keras được trả về
- có nghĩa là: Nó đề cập đến một số thực thể hiện giá trị trung bình của phân phối chuẩn.
- scale: Nó đề cập đến một số thực thể hiện độ lệch chuẩn của phân phối chuẩn.
- dtype: Nó có thể được định nghĩa là chuỗi đại diện cho dtype của biến Keras được trả về.
- name: Nó tham chiếu đến một Chuỗi đại diện cho tên của biến Keras được trả về.
- seed: Nó tham chiếu đến một số nguyên đại diện cho hạt giống ngẫu nhiên.
Return
Nó xuất ra một biến Keras đã được lấp đầy bởi các mẫu đã vẽ.
Thí dụ
# TensorFlow example >>> kvar = K.random_normal_variable((2,3), 0, 1) >>> kvar <tensorflow.python.ops.variables.Variable object at 0x10ab12dd0> >>> K.eval(kvar) array([[ 1.19591331, 0.68685907, -0.63814116], [ 0.92629528, 0.28055015, 1.70484698]], dtype=float32)
Triển khai
def random_normal_variable(shape, mean, scale, dtype=None, name=None, seed=None): return scale * np.random.randn(*shape).astype(dtype) + mean
- count_params
keras.backend.count_params (x)
Nó xuất ra số lượng không đổi của các thành phần nằm trong một biến Keras hoặc tensor.
Argument
- x: Nó đề cập đến một biến Keras hoặc tensor.
Return
Kết quả là một số nguyên, mô tả tổng số phần tử có trong x, tức là tích của các kích thước tĩnh của một mảng.
Thí dụ
>>> kvar = K.zeros((2,3)) >>> K.count_params(kvar) 6 >>> K.eval(kvar) array([[ 0., 0., 0.], [ 0., 0., 0.]], dtype=float32)
Triển khai
def count_params(x): return x.size
- cast
keras.backend.cast (x, dtype)
Nó giúp truyền một tensor đến một loại dtype riêng biệt, sau đó trả về nó. Trong trường hợp, nếu bạn ép kiểu một biến Keras thì nó cũng sẽ dẫn đến một tenxơ Keras.
Argument
- x: Nó có thể được định nghĩa là Keras tensor hoặc biến.
- dtype: Nó đề cập đến một chuỗi ‘ float16 ‘, ‘ float32 ‘ hoặc ‘ float64 ‘.
Return
Nó xuất ra một tensor Keras với kiểu dtype .
Thí dụ
>>> from keras import backend as K >>> input = K.placeholder((2, 3), dtype='float32') >>> input <tf.Tensor 'Placeholder_2:0' shape=(2, 3) dtype=float32> # It doesn't work in-place as below. >>> K.cast(input, dtype='float16') <tf.Tensor 'Cast_1:0' shape=(2, 3) dtype=float16> >>> input <tf.Tensor 'Placeholder_2:0' shape=(2, 3) dtype=float32> # you need to assign it. >>> input = K.cast(input, dtype='float16') >>> input <tf.Tensor 'Cast_2:0' shape=(2, 3) dtype=float16>
- update
keras.backend.update (x, new_x)
Nó giúp cập nhật giá trị của x thành new_x .
Argument
- x: Nó đề cập đến một biến .
- new_x: Nó có thể được định nghĩa là một tensor có hình dạng tương tự như của x .
Return
Kết quả là biến x được cập nhật
- update_add
keras.backend.update_add(x, increment)
Nó thêm một số gia , giúp cập nhật giá trị của x .
Argument
- x: Nó đề cập đến một biến .
- increment: Nó có thể được định nghĩa là một tensor có hình dạng tương tự như hình dạng của x .
Return
Nó trả về biến x đã cập nhật .
- update_sub
keras.backend.update_sub(x, decrement)
Nó trừ đi số giảm dần để cập nhật giá trị của x .
Argument
- x: Nó có thể được định nghĩa là một biến.
- decrement: Nó đề cập đến một tenxơ có hình dạng tương tự như hình dạng của x .
return
Nó trả về biến x đã cập nhật .
- moving_average_update
keras.backend.moving_average_update(x, value, momentum)
Đối với một biến, nó tính toán đường trung bình động của nó.
Argument
- x: Nó đề cập đến một biến.
- value: Nó có thể được định nghĩa là một tenxơ có cùng hình dạng với x .
- momentum: Nó đề cập đến một động lượng trung bình tĩnh.
Return
Nó xuất ra một hoạt động, được sử dụng để cập nhật biến.
- dot
keras.backend.dot (x, y)
Nó trả về một tensor bằng cách nhân 2 tensor hoặc biến.
Trong khi nhân một tensor nD với tensor nD khác, một hành vi Theano được tái tạo. (ví dụ: (2, 3) * (4, 3, 5) -> (2, 4, 5))
Argument
- x: Nó đề cập đến một tensor hoặc một biến.
- y: Nó đề cập đến một tensor hoặc một biến.
Return
Nó trả về một tensor, được tạo ra sau khi trải qua một tích số chấm giữa x và y.
Các ví dụ
# dot product between tensors >>> x = K.placeholder(shape=(2, 3)) >>> y = K.placeholder(shape=(3, 4)) >>> xy = K.dot(x, y) >>> xy <tf.Tensor 'MatMul_9:0' shape=(2, 4) dtype=float32> # dot product between tensors >>> x = K.placeholder(shape=(32, 28, 3)) >>> y = K.placeholder(shape=(3, 4)) >>> xy = K.dot(x, y) >>> xy <tf.Tensor 'MatMul_9:0' shape=(32, 28, 4) dtype=float32> # Theano-like behavior example >>> x = K.random_uniform_variable(shape=(2, 3), low=0, high=1) >>> y = K.ones((4, 3, 5)) >>> xy = K.dot(x, y) >>> K.int_shape(xy) (2, 4, 5)
Triển khai
def dot(x, y): return np.dot(x, y)
- batch_dot
keras.backend.batch_dot(x, y, axes=None)
batch_dot hữu ích trong việc tính toán sản phẩm chấm theo từng đợt giữa x và y , trong đó x và y là dữ liệu bên trong các lô (tức là có hình dạng của (batch_size, 🙂 ). Nó hoặc là đầu ra một tensor hoặc biến bao gồm ít kích thước hơn đầu vào. Nếu chúng ta giảm số thứ nguyên xuống 1, thì chúng ta có thể sử dụng expand_dims , điều này đảm bảo ndim ít nhất là 2.
Argument
- x: Nó đề cập đến tensor Keras hoặc biến có ndim lớn hơn hoặc bằng 2.
- y: Nó đề cập đến tensor Keras hoặc biến có ndim lớn hơn hoặc bằng 2.
- axes: Nó có thể được định nghĩa là một int hoặc tuple (int, int) nhấn mạnh vào các kích thước của mục tiêu được giảm bớt.
Return
Nó trả về một tensor có hình dạng giống với sự ghép nối của hình dạng x và hình dạng của y (). Ở đây, hình dạng của x liên quan đến càng ít thứ nguyên được tổng kết hơn và y biểu thị càng ít thứ nguyên lô và thứ nguyên được tổng hợp hơn. Tuy nhiên, nó được định dạng lại thành (batch_size, 1) nếu xếp hạng cuối cùng là 1.
Các ví dụ
Giả sử x = [[1, 2], [3, 4]] và y = [[5, 6], [7, 8]] batch_dot (x, y, axis = 1) = [[17], [53 ]] là đường chéo chính của x.dot (yT), mặc dù chúng ta không bao giờ phải tính các phần tử nằm ngoài đường chéo.
Mã giả:
inner_products = [] for xi, yi in zip(x, y): inner_products.append(xi.dot(yi)) result = stack(inner_products)
Suy luận hình dạng: Cho hình dạng của x là (100, 20) và hình dạng của y là (100, 30, 20). Nếu trục là (1, 2), để tìm hình dạng đầu ra của tensor kết quả, hãy lặp qua từng kích thước theo hình dạng của x và hình dạng của y:
- shape [0]: 100: append to output shape
- shape [1]: 20: không thêm vào hình dạng đầu ra, kích thước 1 của x đã được tính bằng tổng. (dot_axes [0] = 1)
- shape [0]: 100: không thêm vào hình dạng đầu ra, luôn bỏ qua kích thước đầu tiên của y
- shape [1]: 30: thêm vào hình dạng đầu ra
- shape [2]: 20: không thêm vào hình dạng đầu ra, chiều 2 của y đã được tính tổng. (dot_axes [1] = 2) output_shape = (100, 30)
>>> x_batch = K.ones(shape=(32, 20, 1)) >>> y_batch = K.ones(shape=(32, 30, 20)) >>> xy_batch_dot = K.batch_dot(x_batch, y_batch, axes=(1, 2)) >>> K.int_shape(xy_batch_dot) (32, 1, 30)
- transpose
keras.backend.transpose (x)
Nó được sử dụng để chuyển một tensor theo sau bằng cách trả về nó.
Argument
- x: Nó có thể là một tensor hoặc một biến.
Return
Nó trả về một tensor.
Các ví dụ
>>> var = K.variable([[1, 2, 3], [4, 5, 6]]) >>> K.eval(var) array([[ 1., 2., 3.], [ 4., 5., 6.]], dtype=float32) >>> var_transposed = K.transpose(var) >>> K.eval(var_transposed) array([[ 1., 4.], [ 2., 5.], [ 3., 6.]], dtype=float32) >>> inputs = K.placeholder((2, 3)) >>> inputs <tf.Tensor 'Placeholder_11:0' shape=(2, 3) dtype=float32> >>> input_transposed = K.transpose(inputs) >>> input_transposed <tf.Tensor 'transpose_4:0' shape=(3, 2) dtype=float32>
Triển khai
def transpose(x): return np.transpose(x)
- gather
keras.backend.gather(reference, indices)
Nó giúp truy xuất các phần tử chỉ số chỉ số trong tham chiếu của tensor.
Argument
- reference: Nó đề cập đến một tensor.
- indices: Nó có thể được định nghĩa là một số nguyên đại diện cho hàng chục của chỉ số.
Return
Nó xuất ra một tensor cùng loại với tham chiếu .
Triển khai
def gather(reference, indices): return reference[indices]
- max
keras.backend.max(x, axis=None, keepdims=False)
Nó tính toán giá trị lớn nhất của tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- axis: Nó đề cập đến một số nguyên hoặc danh sách các số nguyên có bên trong [-rank (x), rank (x)), trục được sử dụng để tính toán các giá trị lớn nhất. Nếu nó được đặt thành Không (mặc định), thì nó sẽ tính toán kích thước tổng thể tối đa.
- keepdims: Nó là một Boolean quyết định có giữ lại các kích thước hay không. Nếu keepdims được đặt thành False , thì thứ hạng của tensor sẽ giảm đi 1. Ngược lại, nếu keepdims được đặt thành True , thì kích thước đã giảm sẽ được giữ nguyên với độ dài 1.
Return
Nó trả về một tensor đại diện cho các giá trị lớn nhất của x.
Triển khai
def max(x, axis=None, keepdims=False): if isinstance(axis, list): axis = tuple(axis) return np.max(x, axis=axis, keepdims=keepdims)
- min
keras.backend.min(x, axis=None, keepdims=False)
Nó tính giá trị nhỏ nhất bên trong một tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- axis: Nó đề cập đến một số nguyên hoặc danh sách các số nguyên có bên trong [-rank (x), rank (x)), trục được sử dụng để tính toán các giá trị nhỏ nhất. Nếu nó được đặt thành Không (mặc định), thì nó sẽ tính toán các kích thước tổng thể tối thiểu.
- keepdims: Nó là một Boolean quyết định có giữ lại các kích thước hay không. Nếu keepdims được đặt thành False , thì thứ hạng của tensor sẽ giảm đi 1. Ngược lại, nếu keepdims được đặt thành True , thì kích thước đã giảm sẽ được giữ nguyên với độ dài 1.
Return
Nó trả về một tensor đại diện cho các giá trị nhỏ nhất của x.
Triển khai
def min(x, axis=None, keepdims=False): if isinstance(axis, list): axis = tuple(axis) return np.min(x, axis=axis, keepdims=keepdims)
- sum
keras.backend.sum(x, axis=None, keepdims=False)
Nó xuất ra tổng các giá trị trong một tensor, cùng với trục được chỉ định.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- axis: Nó đề cập đến một số nguyên hoặc danh sách các số nguyên có bên trong [-rank (x), rank (x)), trục được sử dụng để tính tổng. Nếu nó được đặt thành Không (mặc định), thì nó sẽ tính tổng các kích thước tổng thể.
- keepdims: Nó là một Boolean quyết định có giữ lại các kích thước hay không. Nếu keepdims được đặt thành False , thì thứ hạng của tensor sẽ giảm đi 1. Ngược lại, nếu keepdims được đặt thành True , thì kích thước đã giảm sẽ được giữ nguyên với độ dài 1.
Return
Nó trả về một tensor bao gồm tổng của x .
Triển khai
def sum(x, axis=None, keepdims=False): if isinstance(axis, list): axis = tuple(axis) return np.sum(x, axis=axis, keepdims=keepdims)
- prod
keras.backend.prod(x, axis=None, keepdims=False)
Cùng với trục cụ thể, nó tính toán phép nhân các giá trị bên trong một tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- axis: Nó đề cập đến một số nguyên hoặc danh sách các số nguyên có bên trong [-rank (x), rank (x)), trục được sử dụng để tính toán sản phẩm. Nếu nó được đặt thành Không (mặc định), thì nó sẽ tính toán kích thước tổng thể của sản phẩm.
- keepdims: Nó là một Boolean quyết định có giữ lại các kích thước hay không. Nếu keepdims được đặt thành False , thì thứ hạng của tensor sẽ giảm đi 1. Ngược lại, nếu keepdims được đặt thành True , thì kích thước đã giảm sẽ được giữ nguyên với độ dài 1.
Return
Nó trả về một tensor bao gồm sản phẩm của các phần tử trong x .
Triển khai
def prod(x, axis=None, keepdims=False): if isinstance(axis, list): axis = tuple(axis) return np.prod(x, axis=axis, keepdims=keepdims)
- cumsum
keras.backend.cumsum (x, axis = 0 )
Cùng với trục cụ thể, nó tính tổng tích lũy các giá trị bên trong một tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- axis: Nó đề cập đến một số nguyên, là trục được sử dụng để tính tổng.
Return
Nó trả về một tensor bao gồm tổng tích lũy các giá trị của x dọc theo một trục .
Triển khai
def cumsum(x, axis=0): return np.cumsum(x, axis=axis)
- cumprod
keras.backend.cumprod (x, axis = 0 )
Cùng với trục cụ thể, nó tính toán tích lũy của các giá trị bên trong một tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- axis: Nó đề cập đến một số nguyên, là trục được sử dụng để tính toán sản phẩm.
Return
Nó trả về một tensor bao gồm tích lũy của các giá trị của x dọc theo một trục .
Triển khai:
def cumprod(x, axis=0): return np.cumprod(x, axis=axis)
- var
keras.backend.var(x, axis=None, keepdims=False)
Cùng với trục cụ thể, nó tính toán phương sai của tensor.
Argument
- x: Nó có thể được định nghĩa là một tensor hoặc một biến.
- axis: Nó đề cập đến một số nguyên hoặc danh sách các số nguyên có bên trong [-rank (x), rank (x)), trục được sử dụng để tính phương sai. Nếu nó được đặt thành Không (mặc định), thì nó sẽ tính toán các thứ nguyên phương sai tổng thể.
- keepdims: Nó là một Boolean quyết định có giữ lại các kích thước hay không. Nếu keepdims được đặt thành False , thì thứ hạng của tensor sẽ giảm đi 1. Ngược lại, nếu keepdims được đặt thành True , thì kích thước đã giảm sẽ được giữ nguyên với độ dài 1.
Return
Nó trả về phương sai tensor của các phần tử nằm trong x .
Triển khai khó khăn
def var(x, axis=None, keepdims=False): if isinstance(axis, list): axis = tuple(axis) return np.var(x, axis=axis, keepdims=keepdims)
- rnn
tf.keras.backend.rnn( step_function, inputs, initial_states, go_backwards=False, mask=None, constants=None, unroll=False, input_length=None, time_major=False, zero_output_for_mask=False, )
Nó hữu ích để nhắc lại phía trên kích thước tensor.
Argument
- step_function : Nó được gọi là chức năng bước RNN. Nó bao gồm đối số sau được đưa ra bên dưới:
- inputs: Nó bao gồm một tensor có hình dạng (mẫu, …) đại diện cho đầu vào của mẫu hàng loạt tại một bước thời gian cụ thể. Nó không bao gồm thứ nguyên thời gian.
- initial_states: Nó có thể được định nghĩa như một danh sách tensor.
- new_states: Nó có thể được định nghĩa là một danh sách các tensor tạo nên hình dạng cũng như độ dài giống như của các trạng thái, sao cho trạng thái ban đầu phải là tensor đầu ra của bước thời gian trước đó trong danh sách.
Return
Nó xuất ra một tensor hình dạng (samples, output_dim)
- input: Nó đề cập đến một tensor dữ liệu thời gian ít nhất là ba chiều tạo thành hình dạng của (mẫu, thời gian, …) hoặc một tensor lồng nhau, sao cho mỗi tensor có hình dạng (mẫu, thời gian, .. .) .
- Initial_states: Nó có thể được định nghĩa là một tensor của hình dạng (mẫu, trạng thái_size) bao gồm các giá trị ban đầu của trạng thái sẽ được sử dụng trong hàm bước. Khi state_size có hình dạng lồng nhau, thì cấu trúc lồng nhau cũng sẽ được theo sau bởi các khởi tạo.
- go_backwards: Nó có thể được định nghĩa là Boolean và nếu nó được đặt thành True, thì một tương tác sẽ được thực hiện trên thứ nguyên thời gian theo thứ tự ngược lại, sau đó trả về một chuỗi đã đảo ngược.
- mask: Nó đề cập đến một giọng nam cao nhị phân có hình dạng (mẫu, thời gian, 1) bao gồm một số 0 cho mỗi phần tử và mọi phần tử đã được che đi.
- constants: Nó có thể được định nghĩa là một danh sách các giá trị không đổi, được phân phối ở mỗi bước.
- unroll: Nó minh họa nếu RNN nên được hủy cuộn hoặc một vòng lặp while tượng trưng được sử dụng.
- input_length: Nó có thể được định nghĩa là một số nguyên hoặc tensor một chiều dựa trên kích thước thời gian nếu nó có độ dài cố định hay không. Nếu nó được đặt thành đầu vào có độ dài thay đổi khi không có mặt nạ được chỉ định, thì nó sẽ được sử dụng để tạo mặt nạ.
- time_major: Nó có thể được định nghĩa là một Boolean. Nếu nó được đặt thành true , thì hình dạng của đầu vào cũng như đầu ra sẽ là (loạt bước thời gian, …) , khác (hàng loạt, bước chấm, …) nếu được đặt thành sai . Để sử dụng time_major = True là một nhiệm vụ khá hiệu quả vì tránh được việc chuyển vị khi bắt đầu cũng như lúc kết thúc tính toán RNN. Tuy nhiên, phần lớn, dữ liệu TensorFlow tồn tại theo lô chính do đó, theo mặc định, hàm này chấp nhận đầu vào và phát ra đầu ra ở dạng lô chính.
- zero_output_for_mask: Nó đề cập đến một Boolean mà nếu nó được đặt thành true, thì đầu ra của timestep bị che sẽ là số không, nếu không thì đầu ra của bước trước đó sẽ được trả về.
Returns
Nó trả về một bộ hình dạng (last_output, đầu ra, new_states) , trong đó last_output liên quan đến đầu ra gần đây nhất của rnn bao gồm một hình dạng (mẫu,…) , đầu ra đề cập đến một tensor hình dạng (mẫu, thời gian,…) , sao cho mỗi đầu ra mục nhập [s, t] tương ứng với đầu ra của hàm bước cho mẫu s và thời gian t và new_states có thể được định nghĩa là danh sách tensor đại diện cho các trạng thái mới nhất, được hoàn nguyên bởi hàm bước của hình dạng bao gồm (các mẫu, …) .
Raises
- ValueError: Lỗi giá trị được tạo ra nếu thứ nguyên của đầu vào nhỏ hơn 3.
- ValueError: Nó cũng có thể được nâng lên trong trường hợp hủy cuộn được đặt thành True , trong khi bước vào thời gian không phải là một số tĩnh.
- ValueError: Trong trường hợp nếu mặt nạ được cung cấp nhưng không được đặt thành Không có và trạng thái không được cung cấp (tức là len (các trạng thái) == 0 ), thì nó cũng được tạo.