Phạm vi

công khai lớp cuối cùng 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à một vùng chứa cho các thuộc tính chung được áp dụng cho TensorFlow Ops. Mã người dùng bình thường khởi tạo một 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);
 

Một lớp xây dựng Hoạt động có được một Phạm vi và sử dụng nó để thiết lập 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() để tạo 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 chính.

Một ví dụ sử dụng Constant 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, ...);
 

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

Người xây dựng công cộng

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

Phương thức công khai

OperationBuilder
applyControlDependencies (Trình tạo OperationBuilder )
Thêm từng Toán hạng trong controlDependencies làm đầu vào điều khiển cho trình tạo được cung cấp.
Thực thi
env ()
Trả về môi trường thực thi được sử dụng bởi phạm vi này.
Chuỗi
makeOpName (String defaultName)
Tạo một tên duy nhất cho một toán tử, sử dụng một tên mặc định được cung cấp nếu cần thiết.
Phạm vi
withControlDependencies (Điều khiển < Toán hạng <? >> có thể lặp lại )
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ụ thuộc điều khiển được cung cấp.
Phạm vi
withName (Chuỗi opName)
Trả lại một phạm vi mới sử dụng tên được cung cấp cho một tùy chọn.
Phạm vi
withSubScope (String 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 thức kế thừa

Người xây dựng công cộng

Phạm vi công cộng ( ExecutionEnosystem 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 sử dụng bởi phạm vi.

Phương thức công khai

public OperationBuilder applyControlDependencies (Trình tạo OperationBuilder )

Thêm từng Toán hạng trong controlDependencies 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

public ExecutionEnosystem env ()

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

public String makeOpName (String defaultName)

Tạo một tên duy nhất cho một toán tử, sử dụng một 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ể 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 hoạt động liên quan bằng cách gọi mã xây dựng toán tử khác), tên được cung cấp sẽ hoạt động như một kính con cho tất cả các toán tử bên dưới.

Thông số
defaultName tên cho toán tử cơ bản.
Lợi nhuận
  • tên duy nhất cho nhà điều 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ớiControlDependencies (Điều khiển < Toán hạng <? >> có thể lặp lại )

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

Các Ops được tạo với phạm vi này sẽ có một cạnh kiểm soát 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 phụ thuộc cho các hoạt động được tạo với phạm vi trả về
Lợi nhuận
  • một phạm vi mới với các phụ thuộc điều khiển được cung cấp

Phạm vi công khai với Tên (Chuỗi opName)

Trả lại một phạm vi mới sử dụng tên được cung cấp cho một tùy chọn.

Các thao tác được tạo trong phạm vi này sẽ có tên là tên biểu mẫu name/opName[_suffix] . Điều này cho phép bạn đặt tên 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ố
opName tên cho một toán tử trong phạm vi trả về
Lợi nhuận
  • 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 vớiSubScope (Chuỗi conScopeName)

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 Ops được tạo với phạm vi này sẽ có name/childScopeName/ làm tiền tố. 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ố
childScopeName tên cho phạm vi con mới
Lợi nhuận
  • một kính con mới
Ném
Ngoại lệ Đối số bất hợp pháp nếu tên không hợp lệ