Dense
Dense layer là lớp của mạng Neuron đơn giản, trong đó mỗi neuron nhận đầu vào từ tất cả các tế bào neuron của lớp trước đó, do đó được gọi là Dense layer.
Dense layer được sử dụng để phân loại hình ảnh dựa trên kết quả đầu ra từ các lớp phức hợp. Hoạt động của nơron đơn lẻ. Một lớp chứa nhiều số lượng tế bào thần kinh như vậy.
keras.layers.Dense(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
Lớp Dense có thể được định nghĩa là lớp Mạng thần kinh chung được kết nối dày đặc. output = activation(dot(input, kernel) +bias) được thực thi bởi Lớp dense. Ở đây, một chức năng kích hoạt phần tử khôn ngoan đang được thực hiện bởi kích hoạt, để truyền một đối số kích hoạt, một ma trận trọng số được gọi là hạt nhân được xây dựng bởi lớp và thiên vị là một vectơ được tạo bởi lớp, chỉ có thể áp dụng nếu use_bias là True .
Các bài viết liên quan:
Cần lưu ý rằng nếu đầu vào được cung cấp cho lớp có thứ hạng lớn hơn hai, trước đó nó sẽ được san phẳng thành sản phẩm chấm chính của nó với hạt nhân.
Thí dụ
# First layer in the sequential model: model = Sequential() model.add(Dense(32, input_shape=(16,))) # The model takes the input as arrays of shape (*, 16) and output arrays of shape (*, 32) # After the first layer, you don't need to specify the size of the input: model.add(Dense(32))
Argument
- units Nó đề cập đến một số nguyên dương xác nhận kích thước không gian đầu ra.
- activation: Nó đảm bảo rằng lớp dày đặc sử dụng chức năng kích hoạt phần tử khôn ngoan. Đây là một kích hoạt tuyến tính, được đặt thành không theo mặc định. Vì tính tuyến tính của nó bị hạn chế, chúng tôi không có nhiều chức năng kích hoạt tích hợp của nó.
- use_bias: Đây là một tham số tùy chọn, có nghĩa là chúng tôi có thể kết hợp hoặc không kết hợp nó trong tính toán của mình. Nó đại diện cho một Boolean cho biết liệu lớp có sử dụng vectơ thiên vị hay không.
- kernel_initializer: Nó có thể được định nghĩa như một bộ khởi tạo cho ma trận trọng số hạt nhân .
- bias_initializer: Nó có thể được định nghĩa như một bộ khởi tạo cho vectơ thiên vị mà Keras sử dụng bộ khởi tạo zero theo mặc định. Giả định rằng nó đặt vector thiên vị thành tất cả các số không.
- kernel_regularizer: Nó có thể được gọi là một hàm điều chỉnh, được thực hiện trên ma trận trọng số hạt nhân .
- bias_regularizer: Nó có thể được định nghĩa là một hàm điều chỉnh, được áp dụng cho vector thiên vị.
- Activity_regualrizer: Nó liên quan đến một hàm điều chỉnh được áp dụng cho đầu ra của lớp (kích hoạt của nó).
- kernel_constraint: Nó đề cập đến ràng buộc, được áp dụng cho ma trận trọng số hạt nhân.
- bias_constraint: Nó có thể được định nghĩa là một ràng buộc, được áp dụng cho vector thiên vị.
Input shape
Lớp Input shape chấp nhận một tensor nD của hình dạng ( batch_size,…, input_dim) và đảm bảo rằng tình huống phổ biến nhất của nó sẽ phải là đầu vào 2D bao gồm một hình dạng (batch_size, input_dim) .
Output shape
Nó xuất ra một tensor nD của hình dạng ( batch_size,…, units) . Ví dụ, trong đó đầu vào là dạng 2D có hình dạng (kích thước lô, đầu vào_dim) , thì đầu ra tương ứng sẽ có hình dạng (kích thước lô_ô, đơn vị) .
Activation
keras.layers.Activation(activation)
Đây là lớp thực hiện một chức năng kích hoạt trên đầu ra.
Argument
- activation: Về cơ bản, nó đề cập đến tên của một chức năng kích hoạt sẽ được sử dụng, hoặc đơn giản chúng ta có thể nói hoạt động Theano hoặc TensorFlow.
Input Shape
Nó bao gồm một hình dạng đầu vào tùy ý. Nó sử dụng một đối số được gọi là input_shape trong khi sử dụng nó như một lớp ban đầu trong mô hình. Input_shape có thể được định nghĩa là một bộ số nguyên không bao gồm trục mẫu.
output Shape
Hình dạng đầu ra giống với hình dạng đầu vào.
Dropout
keras.layers.Dropout (rate, noise_shape = None, seed = None)
Việc bỏ qua được áp dụng cho đầu vào vì nó ngăn chặn việc trang bị quá mức bằng cách đặt ngẫu nhiên các đơn vị của tỷ lệ phân số thành 0 trong thời gian đào tạo ở mỗi lần cập nhật.
Argument
- rate: Nó đề cập đến một giá trị thực giữa 0 và 1, đại diện cho các đơn vị phân số được bỏ đi.
- noise_shape: Nó đề cập đến số nguyên tensor một chiều mô phỏng hình dạng của mặt nạ bỏ học nhị phân, sẽ được sử dụng trong phép nhân với đầu vào. Nếu hình dạng đầu vào là (batch_size, timesteps, features) và đối với tất cả các timeteps, bạn muốn mặt nạ bỏ qua của mình giống nhau, thì, trong trường hợp đó, noise_shape = (batch_size, 1, feature) có thể được sử dụng.
- seed: Nó chỉ ra một số nguyên python sẽ được sử dụng làm hạt giống ngẫu nhiên.
Flatten
keras.layers.Flatten(data_format=None)
Lớp làm phẳng được sử dụng để làm phẳng đầu vào bằng cách không ảnh hưởng đến kích thước lô.
Argument
- data_format: Nó có thể được định nghĩa là một chuỗi một trong các channel_last (theo mặc định) hoặc channel_first . Nó chủ yếu được sử dụng để sắp xếp các kích thước đầu vào, để bảo toàn thứ tự trọng lượng khi một mô hình đang được chuyển từ định dạng dữ liệu này sang định dạng dữ liệu khác. Ở đây, channel_last liên quan đến hình dạng đầu vào của (batch,…, channel) , trong khi channel_first liên quan đến hình dạng đầu vào của (batch, channel,…) . Theo mặc định, giá trị image_data_format được tìm thấy trong tệp cấu hình Keras nằm ở ~ / .keras / keras.json , nếu chưa được đặt thì giá trị này sẽ ở ” channel_last “.
Thí dụ
model = Sequential() model.add(Conv2D(64, (3, 3), input_shape=(3, 32, 32), padding='same',)) # Now: model.output_shape == (None, 64, 32, 32) model.add(Flatten()) # Now: model.output_shape == (None, 65536)
Input
keras.engine.input_layer.Input ()
Lớp đầu vào sử dụng Input () để khởi tạo một tensor Keras, đơn giản là một đối tượng tensor từ phần phụ trợ như Theano, TensorFlow hoặc CNTK. Nó có thể được tăng cường với một số thuộc tính cụ thể, điều này sẽ cho phép chúng tôi xây dựng mô hình Keras chỉ với sự trợ giúp của đầu vào và đầu ra.
Nếu chúng ta có m, n và o tensors Keras, thì chúng ta có thể thực hiện mô hình = Model (input = [m, n], output = o).
Một số thuộc tính Keras được bổ sung khác là; _keras_shape , tuple hình dạng số nguyên được truyền thông qua suy luận hình dạng phía Keras và _keras_history là lớp cuối cùng, được áp dụng trên tensor. Lớp cuối cùng cho phép truy xuất toàn bộ biểu đồ lớp một cách đệ quy.
Argument
- shape: shape tuple có thể được định nghĩa là một số nguyên không bao gồm kích thước lô. Ví dụ: shape = (32,) chỉ định rằng các lô đầu vào dự kiến sẽ là các vectơ 32 chiều.
- batch_shape: Bộ hình dạng chỉ ra một số nguyên bao gồm kích thước lô, chẳng hạn như batch_shape = (10, 32) đại diện cho các lô đầu vào dự kiến sẽ là mười vectơ 32 chiều và batch_shape = (Không có, 32) đại diện cho các lô một số vectơ 32-D tùy ý.
- name: Đây là tên chuỗi tùy chọn của lớp phải là duy nhất và ngay cả khi nó không được cung cấp, nó sẽ được tạo tự động.
- dtype: Kiểu dữ liệu mong đợi của đầu vào là một chuỗi (float32, float64, int32,…) .
- sparse: Nó đề cập đến một Boolean chỉ định xem trình giữ chỗ được tạo có thưa thớt hay không.
- tensor: Nó là một tensor tùy chọn tồn tại để gói vào lớp Đầu vào. Nếu nó được đặt, lớp sẽ không tạo ra một tensor trình giữ chỗ
Return
Nó trả về một tensor.
Thí dụ
# Logistic regression in Keras x = Input(shape=(32,)) y = Dense(16, activation='softmax')(x) model = Model(x, y)
Reshape
keras.layers.Reshape (target_shape)
Nó được sử dụng để định hình lại đầu ra thành một số hình dạng cụ thể.
Argument
- target_shape: Nó đề cập đến một bộ số nguyên trỏ hình dạng đầu ra, không bao gồm trục lô.
input Shape
Nó bao gồm hình dạng đầu vào tùy ý ngay cả khi nó được cố định và sử dụng đối số input_shape trong khi sử dụng lớp này làm lớp ban đầu trong mô hình.
Output shape
(batch_size,) + target_shape
Thí dụ
# First layer in a Sequential model model = Sequential() model.add(Reshape((3, 4), input_shape=(12,))) # Now: model.output_shape == (None, 3, 4) # Note: Here `None` represents the batch dimension # An intermediate layer in a Sequential model model.add(Reshape((6, 2))) # Now: model.output_shape == (None, 6, 2) # It also supports shape inference using `-1` as a dimension model.add(Reshape((-1, 2, 2))) # Now: model.output_shape == (None, 3, 2, 2)
Permute
keras.layers.Permute(dims)
Nó hoán vị thứ nguyên của đầu vào theo mẫu đã cho và chủ yếu được sử dụng để nối RNN với các chuyển đổi với nhau.
Thí dụ
model = Sequential() model.add(Permute((2, 1), input_shape=(10, 64))) # now: model.output_shape == (None, 64, 10) # note: `None` is the batch dimension
Argument
- dím: Nó có thể được định nghĩa là một bộ số nguyên. Các mẫu hoán vị không hiểu các kích thước mẫu. Ở đây, việc lập chỉ mục bắt đầu từ 1 và đối với bất kỳ trường hợp ngẫu nhiên nào, (2,1) sẽ hoán vị chiều thứ nhất và thứ hai của đầu vào.
Input Shape
Nó bao gồm một hình dạng đầu vào tùy ý và sử dụng đối số từ khóa input_shape , là một bộ số nguyên. Đối số này được sử dụng khi sử dụng lớp này làm lớp ban đầu trong mô hình. Nó không bao gồm trục mẫu.
Output shape
Hình dạng đầu ra tương tự như hình dạng đầu vào, chỉ là thực tế là các kích thước được sắp xếp lại theo một số mẫu cụ thể.
RepeatVector
keras.layers.RepeatVector (n)
Lớp RepeatVector được sử dụng để nhắc lại một đầu vào n lần.
Thí dụ
model = Sequential() model.add(Dense(32, input_dim=32)) # now: model.output_shape == (None, 32) # note: `None` is the batch dimension model.add(RepeatVector(3)) # now: model.output_shape == (None, 3, 32)
Argument
- n: Nó có thể được định nghĩa là một số nguyên biểu thị hệ số lặp lại.
Input shape
Nó bao gồm một tensor 2D có hình dạng (num_samples, features) .
Output shape
Nó tạo thành một khối hình dạng 3D (num_samples, n, features) .
Lambda
keras.layers.Lambda(function, output_shape=None, mask=No ,arguments =none)
Lớp này được sử dụng để gói một biểu thức tùy ý như một đối tượng của Lớp .
Các ví dụ
# Adding a x -> x^2 layer model.add(Lambda(lambda x: x ** 2)) # Now add a layer that will return the concatenation of the positive part of the input and the opposite of the negative part def antirectifier(x): x -= K.mean(x, axis=1, keepdims=True) x = K.l2_normalize(x, axis=1) pos = K.relu(x) neg = K.relu(-x) return K.concatenate([pos, neg], axis=1) def antirectifier_output_shape(input_shape): shape = list(input_shape) assert len(shape) == 2 # only valid for 2D tensors shape[-1] *= 2 return tuple(shape) model.add(Lambda(antirectifier, output_shape=antirectifier_output_shape)) # Now add a layer that will return the hadamard product and its sum from two input tensors. def hadamard_product_sum(tensors): out1 = tensors[0] * tensors[1] out2 = K.sum(out1, axis=-1) return [out1, out2] def hadamard_product_sum_output_shape(input_shapes): shape1 = list(input_shapes[0]) shape2 = list(input_shapes[1]) assert shape1 == shape2 # else hadamard product isn't possible return [tuple(shape1), tuple(shape2[:-1])] x1 = Dense(32)(input_1) x2 = Dense(32)(input_2) layer = Lambda(hadamard_product_sum, hadamard_product_sum_output_shape) x_hadamard, x_sum = layer([x1, x2])
Argument
- function: Nó có thể được định nghĩa là một hàm, được yêu cầu tính toán. Nó lấy tensor đầu vào hoặc danh sách tensor làm đối số đầu tiên.
- output_shape: Nó mong đợi hình dạng đầu ra từ chính hàm, có liên quan nếu Theano được sử dụng. Nếu output_shape là một tuple, thì nó bắt đầu chỉ định từ thứ nguyên đầu tiên. Nó giả định thứ nguyên mẫu tương tự như output_shape = (input_shape [0],) + output_shape hoặc đầu vào là Không . Tương tự, thứ nguyên là Không có: output_shape = (None,) + output_shape , nếu một hàm được chỉ định cho toàn bộ hình dạng dưới dạng hàm của hình dạng đầu vào: output_shape = f (input_shape) .
- mask: Nó có thể là không có nghĩa là không có mặt nạ hoặc một tensor, liên quan đến mặt nạ đầu vào để nhúng.
- arguments: Nó là một từ khóa đối số từ điển tùy chọn được chuyển cho hàm.
Input Shape
Input shape vào là một bộ số nguyên tùy ý sử dụng từ khóa đối số input_shape trong khi sử dụng lớp này làm lớp ban đầu trong mô hình và không bao gồm trục mẫu.
Output Shape
Nó được chỉ định bởi đối số output_shape hoặc tự động suy ra khi TensorFlow hoặc CNTK được sử dụng.
ActivityRegularization
keras.layers.ActivityRegulification (l1 = 0,0 , l2 = 0,0 )
Lớp phân tích hoạt động cập nhật hàm chi phí trên cơ sở hoạt động đầu vào.
Argument
- l1: L1 là một hệ số chính quy float dương.
- l2: L2 là một hệ số điều hòa float dương.
Input Shape
Nó là một bộ số nguyên tùy ý sử dụng đối số input_shape trong khi sử dụng lớp này làm lớp ban đầu trong mô hình. Nó không ôm lấy trục mẫu
Output Shape
Hình dạng đầu ra tương tự như hình dạng đầu vào.
Masking
keras.layers.Masking (mask_value = 0.0 )
Lớp Masking được sử dụng để che dấu một trình tự, đơn giản bằng cách sử dụng giá trị mặt nạ để tránh các bước thời gian. Đối với một mẫu mốc thời gian nhất định, nếu tất cả các tính năng tương đương với mask_value , thì trong trường hợp đó, các bước thời gian mẫu chỉ được che (bỏ qua) trong tất cả các lớp hạ lưu nếu chúng hỗ trợ tạo mặt nạ.
Một ngoại lệ sẽ được đưa ra nếu bất kỳ lớp nào trong số các lớp hạ lưu không hỗ trợ tạo mặt nạ nhưng vẫn nhận được mặt nạ đầu vào.
Thí dụ
Gọi x là mảng dữ liệu phức tạp của hình dạng (mẫu, thời gian, tính năng), sẽ được cung cấp cho lớp LSTM. Bây giờ, giả sử rằng bạn sẵn sàng che dấu số 0 ở bước thời gian số 3 và mẫu số 2 ở bước thời gian số 5, vì bạn thiếu các tính năng cho các bước thời gian mẫu này thì bạn có thể làm như sau:
- đặt x [0, 3,:] = 0 và x [2, 5,:] = 0 .
- Để chèn một lớp mặt nạ trước lớp LSTM, hãy sử dụng mask_value = 0 .
model = Sequential() model.add(Masking(mask_value=0., input_shape=(timesteps, features))) model.add(LSTM(32))
Argument
- mask_value: Có thể không có hoặc bỏ qua.
SpatialDropout1D
Đây là phiên bản 1D bỏ theo không gian thực hiện chức năng tương tự như của phiên bản bỏ theo dõi, nhưng nó không làm rơi một phần tử riêng lẻ, thay vào đó nó sẽ giảm toàn bộ bản đồ tính năng 1D. Khi các khung tiếp giáp được liên kết chặt chẽ trong bản đồ đối tượng giống như nó được thực hiện trong các lớp tích chập, thì trong trường hợp đó, các kích hoạt sẽ không được điều chỉnh bởi người bỏ học thường xuyên nhưng cuối cùng sẽ làm giảm tỷ lệ học tập hiệu quả . Trong trường hợp cụ thể này, nó sẽ giúp thúc đẩy sự độc lập giữa các bản đồ đối tượng và sẽ được sử dụng thay thế.
Xem thêm Testing Security – kiểm tra quy trình đăng ký tài khoản
Argument
- rate: Nó là một phần nổi giữa 0 và 1. Các phân số của các đơn vị đầu vào sẽ giảm xuống.
Input Shape
Nó là một hình dạng căng thẳng 3D (mẫu, bước thời gian, kênh)
Output Shape
Hình dạng đầu ra tương tự như hình dạng đầu vào.
SpatialDropout2D
keras.layers.SpatialDropout2D (rate, data_format = None)
Nó là một phiên bản 2D bỏ học theo không gian. Nó cũng thực hiện các chức năng tương tự như chức năng của học sinh bỏ học; tuy nhiên, nó làm giảm toàn bộ bản đồ tính năng 2D thay vì một phần tử riêng lẻ. Nếu các khung liền kề có tương quan chặt chẽ trong bản đồ tính năng giống như nó được thực hiện trong các lớp tích chập, thì các kích hoạt sẽ không được điều chỉnh bởi người bỏ học thường xuyên và nếu không sẽ làm giảm tỷ lệ học tập hiệu quả. Trong trường hợp này, nó thúc đẩy tính độc lập giữa các bản đồ đối tượng và được sử dụng thay thế.
Argument
- rate: Nó là phần nổi giữa 0 và 1. Giảm một phần nhỏ các đơn vị đầu vào.
- data_format: Nó ở một trong hai chế độ, tức là ‘channel_first’ hoặc ‘channel_last’ . Nếu nó ở chế độ channel_first , thì độ sâu có nghĩa là ở chỉ mục 1, ngược lại trong trường hợp channel_last , nó ở chỉ mục 3. Nó được mặc định thành giá trị image_data_format được tìm thấy trong cấu hình Keras tại ~ / .keras / keras. json . Nếu bạn không thể tìm thấy nó trong thư mục đó, thì nó đang nằm ở “channel_last”.
Input Shape
Nếu data_format = ‘channel_first’ , thì tensor 4D sẽ có hình dạng (mẫu, kênh, hàng, cols) , nếu nó data_format = ‘channel_last’ , thì tensor 4D sẽ có hình dạng (mẫu, hàng, cols, kênh ) .
Output Shape
Hình dạng đầu ra tương tự như hình dạng đầu vào.
SpatialDropout3D
keras.layers.SpatialDropout3D (rate, data_format = None)
Đây là phiên bản 3D bỏ học theo không gian thực hiện các chức năng tương tự như phiên bản bỏ mạng, nhưng nó làm rơi bản đồ tính năng 3D hoàn chỉnh thay vì bất kỳ phần tử cụ thể nào. Việc bỏ học thường xuyên sẽ không ổn định các kích hoạt nếu các voxels liền kề nằm trong các bản đồ đối tượng có tương quan chặt chẽ giống như trong các lớp chập và nếu không sẽ làm giảm tỷ lệ học tập hiệu quả. Nó cũng hỗ trợ tính độc lập giữa các bản đồ tính năng.
Argument:
- rate: Nó nằm giữa 0 và. Các phần nhỏ của đơn vị đầu vào sẽ giảm xuống.
- data_format: Nó đi kèm với hai chế độ, tức là ‘channel_first’ hoặc ‘channel_last’ , sao cho thứ nguyên kênh trong ‘channel_first’ ở chỉ mục 1 và trong trường hợp ‘channel_last’ , nó ở chỉ mục 4. Nó được mặc định là giá trị image_data_format được tìm thấy trong cấu hình Keras tại ~ / .keras / keras.json . Nếu bạn không thể tìm thấy nó trong thư mục đó, thì nó đang nằm ở “channel_last”.
Input Shape
Hình dạng của tensor 5D là: (mẫu, kênh, dim1, dim2, dim3) nếu data_format = ‘channel_first’ , khác (mẫu, dim1, dim2, dim3, kênh) nếu data_format = ‘channel_last’ .
Output shape
Hình dạng đầu ra giống với hình dạng đầu vào.