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:

  1. 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] .
  2. 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] .
  3. Đố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ủa data_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 padding là "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ếu padding không phải là "EXPLICIT" , explicit_paddings phả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ủa data_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ủa data_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
)