Giúp bảo vệ Great Barrier Reef với TensorFlow trên Kaggle Tham Challenge

TensorFlow Addons




TensorFlow Addons là một kho lưu trữ những đóng góp mà phù hợp với mô hình API cũng thành lập, nhưng thực hiện chức năng mới không có sẵn trong TensorFlow lõi. TensorFlow tự nhiên hỗ trợ một số lượng lớn toán tử, lớp, số liệu, tổn thất và trình tối ưu hóa. Tuy nhiên, trong một lĩnh vực chuyển động nhanh như ML, có nhiều phát triển mới thú vị không thể được tích hợp vào TensorFlow cốt lõi (vì khả năng ứng dụng rộng rãi của chúng chưa rõ ràng hoặc nó chủ yếu được sử dụng bởi một tập hợp con nhỏ hơn của cộng đồng).

Cài đặt

Công trình ổn định

Để cài đặt phiên bản mới nhất, hãy chạy như sau:

pip install tensorflow-addons

Để sử dụng các addon:

import tensorflow as tf
import tensorflow_addons as tfa

Công trình xây dựng hàng đêm

Ngoài ra còn có đêm xây dựng của TensorFlow Addons thuộc gói pip tfa-nightly , được xây dựng so với phiên bản ổn định mới nhất của TensorFlow. Các bản dựng hàng đêm bao gồm các tính năng mới hơn, nhưng có thể kém ổn định hơn so với các bản phát hành có phiên bản.

pip install tfa-nightly

Cài đặt từ Nguồn

Bạn cũng có thể cài đặt từ nguồn. Điều này đòi hỏi các Bazel xây dựng hệ thống.

git clone https://github.com/tensorflow/addons.git
cd addons

# If building GPU Ops (Requires CUDA 10.0 and CuDNN 7)
export TF_NEED_CUDA=1
export CUDA_TOOLKIT_PATH="/path/to/cuda10" (default: /usr/local/cuda)
export CUDNN_INSTALL_PATH="/path/to/cudnn" (default: /usr/lib/x86_64-linux-gnu)

# This script links project with TensorFlow dependency
python3 ./configure.py

bazel build build_pip_pkg
bazel-bin/build_pip_pkg artifacts

pip install artifacts/tensorflow_addons-*.whl

Khái niệm cốt lõi

API tiêu chuẩn hóa trong các gói con

Trải nghiệm người dùng và khả năng bảo trì dự án là những khái niệm cốt lõi trong TF-Addons. Để đạt được những điều này, chúng tôi yêu cầu các bổ sung của chúng tôi phải tuân theo các mẫu API đã thiết lập được thấy trong TensorFlow cốt lõi.

GPU / CPU tùy chỉnh-Ops

Một lợi ích chính của TensorFlow Addons là có các hoạt động được biên dịch trước. Nếu không tìm thấy cài đặt CUDA 10 thì tùy chọn này sẽ tự động quay trở lại quá trình triển khai CPU.

Quyền duy trì proxy

Addon đã được thiết kế để chia nhỏ các gói con và mô-đun con để chúng có thể được duy trì bởi những người dùng có chuyên môn và quan tâm đến thành phần đó.

Quyền duy trì gói phụ sẽ chỉ được cấp sau khi đã đóng góp đáng kể để hạn chế số lượng người dùng có quyền ghi. Các đóng góp có thể ở dạng đóng sự cố, sửa lỗi, tài liệu, mã mới hoặc tối ưu hóa mã hiện có. Quyền duy trì mô-đun con có thể được cấp với một rào cản thấp hơn để gia nhập vì điều này sẽ không bao gồm quyền ghi vào repo.

Để biết thêm thông tin, xem RFC về chủ đề này.

Đánh giá định kỳ các gói con

Với bản chất của kho lưu trữ này, các gói con và mô-đun con có thể ngày càng trở nên ít hữu ích hơn đối với cộng đồng theo thời gian. Để giữ cho kho lưu trữ bền vững, chúng tôi sẽ thực hiện đánh giá hai năm một lần đối với mã của mình để đảm bảo mọi thứ vẫn thuộc về kho lưu trữ. Các yếu tố đóng góp vào đánh giá này sẽ là:

  1. Số lượng người bảo trì đang hoạt động
  2. Lượng sử dụng PMNM
  3. Số lượng sự cố hoặc lỗi được quy cho mã
  4. Nếu một giải pháp tốt hơn bây giờ có sẵn

Chức năng trong TensorFlow Addons có thể được phân loại thành ba nhóm:

  • Gợi ý: duy trì tốt API; sử dụng được khuyến khích.
  • Nản: một lựa chọn tốt hơn là có sẵn; API được giữ lại vì những lý do lịch sử; hoặc API yêu cầu bảo trì và là khoảng thời gian chờ không được dùng nữa.
  • Phản đối: sử dụng có nguy cơ của riêng bạn; chủ đề được xóa.

Thay đổi trạng thái giữa ba nhóm này là: Được đề xuất <-> Không được khuyến khích -> Không được chấp nhận.

Khoảng thời gian giữa một API được đánh dấu là không dùng nữa và bị xóa sẽ là 90 ngày. Cơ sở lý luận là:

  1. Trong trường hợp TensorFlow Addons phát hành hàng tháng, sẽ có 2-3 bản phát hành trước khi một API bị xóa. Các ghi chú phát hành có thể cung cấp cho người dùng đủ cảnh báo.

  2. 90 ngày cho phép người bảo trì có nhiều thời gian để sửa mã của họ.

Đóng góp

TF-Addons là một dự án nguồn mở do cộng đồng dẫn dắt. Do đó, dự án phụ thuộc vào đóng góp của công chúng, sửa lỗi và tài liệu. Xin vui lòng xem hướng dẫn đóng góp cho một hướng dẫn về làm thế nào để đóng góp. Dự án này tuân thủ các quy tắc ứng xử TensorFlow của . Bằng cách tham gia, bạn sẽ duy trì mã này.

Cộng đồng

Giấy phép

Giấy phép Apache 2.0