Scope

lớp cuối cùng công khai Phạm vi

Quản lý các nhóm thuộc tính liên quan khi tạo Hoạt động Tensorflow, chẳng hạn như tiền tố tên chung.

Scope là nơi chứa các thuộc tính chung được áp dụng cho TensorFlow Ops. Mã người dùng thông thường khởi tạo Scope và cung cấp nó cho các lớp xây dựng Hoạt động. Ví dụ:

Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 

Lớp xây dựng Hoạt động có được Phạm vi và sử dụng phạm vi đó để đặt các thuộc tính trên các hoạt động Tensorflow cơ bản. Ví dụ:

// An operator class that adds a constant.
 public class Constant {
   public static Constant create(Scope scope, ...) {
      scope.graph().opBuilder(
        "Const", scope.makeOpName("Const"))
        .setAttr(...)
        .build()
      ...
   }
 }
 

Phân cấp phạm vi:

Scope cung cấp nhiều phương thức with() khác nhau để tạo ra một phạm vi mới. Phạm vi mới thường có một thuộc tính được thay đổi trong khi các thuộc tính khác được kế thừa từ phạm vi gốc.

Một ví dụ sử dụng Constant được triển khai như trước:

Scope root = new Scope(graph);

 // The linear subscope will generate names like linear/...
 Scope linear = Scope.withSubScope("linear");

 // This op name will be "linear/W"
 Constant.create(linear.withName("W"), ...);

 // This op will be "linear/Const", using the default
 // name provided by Constant
 Constant.create(linear, ...);

 // This op will be "linear/Const_1", using the default
 // name provided by Constant and making it unique within
 // this scope
 Constant.create(linear, ...);
 

Các đối tượng phạm vi không an toàn theo luồng.

Nhà xây dựng công cộng

Phạm vi ( ExecutionEnvironment env)
Tạo một phạm vi cấp cao nhất mới.

Phương pháp công khai

OperationBuilder
applyControlDependency (trình tạo OperationBuilder )
Thêm từng Toán hạng trong controlDependency làm đầu vào điều khiển cho trình tạo được cung cấp.
Thực thiMôi trường
env ()
Trả về môi trường thực thi được phạm vi này sử dụng.
Sợi dây
makeOpName (Tên mặc định chuỗi)
Tạo tên duy nhất cho toán tử, sử dụng tên mặc định được cung cấp nếu cần.
Phạm vi
withControlDependency (Điều khiển có thể lặp lại< Toán hạng <?>>)
Trả về một phạm vi mới trong đó các hoạt động được thêm vào sẽ có các phần phụ thuộc điều khiển được cung cấp.
Phạm vi
withName (Chuỗi opName)
Trả về một phạm vi mới sử dụng tên được cung cấp cho một op.
Phạm vi
withSubScope (Chuỗi childScopeName)
Trả về một phạm vi mới trong đó các hoạt động được thêm vào sẽ có tiền tố tên được cung cấp.

Phương pháp kế thừa

Nhà xây dựng công cộng

Phạm vi công cộng ( ExecutionEnvironment env)

Tạo một phạm vi cấp cao nhất mới.

Thông số
env Môi trường thực thi được phạm vi sử dụng.

Phương pháp công khai

công khai OperationBuilder áp dụngControlDependency (trình tạo OperationBuilder )

Thêm từng Toán hạng trong controlDependency làm đầu vào điều khiển cho trình tạo được cung cấp.

Thông số
người xây dựng OperationBuilder để thêm đầu vào điều khiển vào

Thực thi công khaiEnvironment env ()

Trả về môi trường thực thi được phạm vi này sử dụng.

Chuỗi công khai makeOpName (Tên mặc định chuỗi)

Tạo tên duy nhất cho toán tử, sử dụng tên mặc định được cung cấp nếu cần.

Điều này thường chỉ được gọi bởi các lớp xây dựng toán tử.

Phương thức này tạo ra một tên duy nhất, phù hợp với phạm vi tên được kiểm soát bởi phiên bản này. Mã xây dựng toán tử điển hình có thể trông giống như

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 

Lưu ý: nếu bạn cung cấp một lớp xây dựng toán tử tổng hợp (tức là một lớp tạo ra một tập hợp các phép toán liên quan bằng cách gọi mã xây dựng toán tử khác), thì tên được cung cấp sẽ đóng vai trò như một phạm vi con cho tất cả các toán tử cơ bản.

Thông số
tên mặc định tên cho toán tử cơ bản.
Trả lại
  • tên duy nhất cho người vận hành.
Ném
Ngoại lệ Đối số bất hợp pháp nếu tên mặc định không hợp lệ.

Phạm vi công khai vớiControlDependency (điều khiển Iterable< Operand <?>>)

Trả về một phạm vi mới trong đó các hoạt động được thêm vào sẽ có các phần phụ thuộc điều khiển được cung cấp.

Các hoạt động được tạo bằng phạm vi này sẽ có cạnh điều khiển từ mỗi điều khiển được cung cấp. Tất cả các thuộc tính khác được kế thừa từ phạm vi hiện tại.

Thông số
điều khiển kiểm soát các phần phụ thuộc cho các hoạt động được tạo bằng phạm vi được trả về
Trả lại
  • một phạm vi mới với các phần phụ thuộc kiểm soát được cung cấp

Phạm vi công khai withName (Chuỗi opName)

Trả về một phạm vi mới sử dụng tên được cung cấp cho một op.

Các hoạt động được tạo trong phạm vi này sẽ có tên dạng name/opName[_suffix] . Điều này cho phép bạn đặt tên cho một toán tử cụ thể có ý nghĩa hơn.

Tên phải khớp với biểu thức chính quy [A-Za-z0-9.][A-Za-z0-9_.\-]*

Thông số
tên op tên cho một toán tử trong phạm vi trả về
Trả lại
  • một Phạm vi mới sử dụng opName cho các hoạt động.
Ném
Ngoại lệ Đối số bất hợp pháp nếu tên không hợp lệ

phạm vi công khai withSubScope (Chuỗi childScopeName)

Trả về một phạm vi mới trong đó các hoạt động được thêm vào sẽ có tiền tố tên được cung cấp.

Các hoạt động được tạo với phạm vi này sẽ có tiền tố name/childScopeName/ . Tên thực tế sẽ là duy nhất trong phạm vi được trả về. Tất cả các thuộc tính khác được kế thừa từ phạm vi hiện tại.

Tên phạm vi con phải khớp với biểu thức chính quy [A-Za-z0-9.][A-Za-z0-9_.\-]*

Thông số
tên phạm vi con tên cho phạm vi con mới
Trả lại
  • một phạm vi phụ mới
Ném
Ngoại lệ Đối số bất hợp pháp nếu tên không hợp lệ