tensorflow::ops::Conv2D
#include <nn_ops.h> Tính toán phép chập 2 chiều dựa trên tensor input và tensor filter 4 chiều.
Bản tóm tắt
Với một tensor đầu vào có dạng [batch, in_height, in_width, in_channels] và một tensor bộ lọc/hạt nhân có dạng [filter_height, filter_width, in_channels, out_channels] , thao tác này thực hiện như sau:
- Làm phẳng bộ lọc thành ma trận 2 chiều có hình dạng
[filter_height * filter_width * in_channels, output_channels]. - Trích xuất các mảng ảnh từ tensor đầu vào để tạo thành một tensor ảo có dạng
[batch, out_height, out_width, filter_height * filter_width * in_channels]. - Đối với mỗi mảng ảnh, thực hiện phép nhân từ bên phải với ma trận bộ lọc và vectơ mảng ảnh.
Cụ thể hơn, với định dạng NHWC mặc định,
output[b, i, j, k] =
sum_{di, dj, q} input[b, strides[1] * i + di, strides[2] * j + dj, q] *
filter[di, dj, q, k] Phải có strides[0] = strides[3] = 1 Đối với trường hợp phổ biến nhất là cùng một chiều ngang và các đỉnh strides, strides = [1, stride, stride, 1] .
Luận điểm:
- phạm vi: Một đối tượng Phạm vi
- Đầu vào: Một tensor 4 chiều. Thứ tự các chiều được diễn giải theo giá trị của
data_format, xem chi tiết bên dưới. - bộ lọc: Một tensor 4 chiều có dạng
[filter_height, filter_width, in_channels, out_channels] - strides: Tensor 1 chiều có độ dài 4. Bước nhảy của cửa sổ trượt cho mỗi chiều của
input. Thứ tự các chiều được xác định bởi giá trị củadata_format, xem chi tiết bên dưới. - padding: Loại thuật toán đệm cần sử dụng.
Các thuộc tính tùy chọn (xem Attrs ):
- explicit_paddings: Nếu
paddinglà"EXPLICIT", danh sách các lượng padding rõ ràng. Đối với chiều thứ i, lượng padding được chèn trước và sau chiều đó lần lượt làexplicit_paddings[2 * i]vàexplicit_paddings[2 * i + 1]. Nếupaddingkhông phải là"EXPLICIT",explicit_paddingsphải trống. - data_format: Chỉ định định dạng dữ liệu đầu vào và đầu ra. Với định dạng mặc định "NHWC", dữ liệu được lưu trữ theo thứ tự: [lô, chiều cao, chiều rộng, kênh]. Hoặc, định dạng có thể là "NCHW", thứ tự lưu trữ dữ liệu là: [lô, kênh, chiều cao, chiều rộng].
- Độ giãn: Tensor 1 chiều có độ dài 4. Hệ số giãn cho mỗi chiều của
input. Nếu đặt thành k > 1, sẽ có k-1 ô bị bỏ qua giữa mỗi phần tử lọc trên chiều đó. Thứ tự chiều được xác định bởi giá trị củadata_format, xem chi tiết ở trên. Độ giãn ở chiều batch và chiều depth phải bằng 1.
Trả về:
-
Output: Một tensor 4 chiều. Thứ tự các chiều được xác định bởi giá trị củadata_format, xem chi tiết bên dưới.
Hàm khởi tạo và hàm hủy | |
|---|---|
Conv2D (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding) | |
Conv2D (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding, const Conv2D::Attrs & attrs) |
Thuộc tính công khai | |
|---|---|
operation | |
output | |
Chức năng công cộng | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
Các hàm tĩnh công khai | |
|---|---|
DataFormat (StringPiece x) | |
Dilations (const gtl::ArraySlice< int > & x) | |
ExplicitPaddings (const gtl::ArraySlice< int > & x) | |
UseCudnnOnGpu (bool x) | |
Cấu trúc | |
|---|---|
| tensorflow::ops::Conv2D::Attrs | Các thiết lập thuộc tính tùy chọn cho Conv2D . |
Thuộc tính công khai
hoạt động
Operation operation
đầu ra
::tensorflow::Output output
Chức năng công cộng
Conv2D
Conv2D( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding )
Conv2D
Conv2D( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding, const Conv2D::Attrs & attrs )
nút
::tensorflow::Node * node() const
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const
Các hàm tĩnh công khai
Định dạng dữ liệu
Attrs DataFormat( StringPiece x )
Sự giãn nở
Attrs Dilations( const gtl::ArraySlice< int > & x )
ExplicitPaddings
Attrs ExplicitPaddings( const gtl::ArraySlice< int > & x )
UseCudnnOnGpu
Attrs UseCudnnOnGpu( bool x )