dòng chảy căng:: ôi:: Conv2D

#include <nn_ops.h>

Tính toán tích chập 2-D cho input 4-D và filter tensor.

Bản tóm tắt

Với một tensor đầu vào có hình dạng [batch, in_height, in_width, in_channels] và một tensor bộ lọc/nhân có hình dạng [filter_height, filter_width, in_channels, out_channels] , op này thực hiện như sau:

  1. Làm phẳng bộ lọc thành ma trận 2-D có hình dạng [filter_height * filter_width * in_channels, output_channels] .
  2. Trích xuất các mảng hình ảnh từ tensor đầu vào để tạo thành một tensor ảo có hình dạng [batch, out_height, out_width, filter_height * filter_width * in_channels] .
  3. Đối với mỗi bản vá, nhân ma trận bộ lọc và vectơ bản vá hình ảnh với bên phải.

Cụ thể, với định dạng NHWC mặc định là

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 của cùng một bước tiến ngang và đỉnh, strides = [1, stride, stride, 1] .

Tranh luận:

  • phạm vi: Một đối tượng Phạm vi
  • đầu vào: Một tensor 4-D. Thứ tự thứ nguyên được diễn giải theo giá trị của data_format , xem bên dưới để biết chi tiết.
  • bộ lọc: Một tensor 4-D có hình dạng [filter_height, filter_width, in_channels, out_channels]
  • bước tiến: tensor 1-D có chiều dài 4. Bước tiến của cửa sổ trượt cho từng chiều của input . Thứ tự thứ nguyên được xác định bởi giá trị của data_format , xem bên dưới để biết chi tiết.
  • phần đệm: Loại thuật toán đệm sẽ sử dụng.

Thuộc tính tùy chọn (xem Attrs ):

  • rõ ràng_paddings: Nếu padding"EXPLICIT" , danh sách số lượng phần đệm rõ ràng. Đối với thứ nguyên thứ i, lượng khoảng đệm được chèn trước và sau thứ nguyên lần lượt là explicit_paddings[2 * i]explicit_paddings[2 * i + 1] . Nếu padding không phải là "EXPLICIT" thì explicit_paddings phải trống.
  • data_format: Chỉ định định dạng dữ liệu của 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]. Ngoài ra, đị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 nở: tensor 1-D có chiều dài 4. Hệ số giãn nở cho từng chiều của input . Nếu được đặt thành k > 1, sẽ có k-1 ô bị bỏ qua giữa mỗi phần tử bộ lọc trên thứ nguyên đó. Thứ tự thứ nguyên được xác định bởi giá trị của data_format , xem chi tiết ở trên. Độ giãn nở của kích thước lô và độ sâu phải bằng 1.

Trả về:

  • Output : Một tensor 4-D. Thứ tự thứ nguyên được xác định bởi giá trị của data_format , xem bên dưới để biết chi tiết.

Hàm 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

tenorflow:: ops:: Conv2D:: Attrs

Trình 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 

toán tử::tenorflow::Đầu vào

 operator::tensorflow::Input() const 

toán tử::tenorflow::Đầu ra

 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
)

Đệm rõ ràng

Attrs ExplicitPaddings(
  const gtl::ArraySlice< int > & x
)

Sử dụngCudnnOnGpu

Attrs UseCudnnOnGpu(
  bool x
)