2017-07-21 17 views
6

Tôi là người mới bắt đầu trong lưới thần kinh và TensorFlow, và tôi đang cố gắng hiểu vai trò của arg_scope.arg_scope thực sự làm gì?

Dường như với tôi rằng đó là cách để tập hợp một từ điển "những điều bạn muốn làm" vào một lớp nhất định với các biến nhất định. Hãy sửa tôi nếu tôi sai. Làm thế nào bạn sẽ giải thích chính xác nó là gì, cho người mới bắt đầu?

Trả lời

5

Khi xác định các lớp co giãn, bạn luôn có thể sử dụng cùng loại đệm và cùng bộ khởi tạo, và thậm chí có thể cùng kích thước chập chững. Để bạn gộp nhóm, có thể bạn cũng luôn sử dụng cùng kích thước tổng hợp 2x2. Và cứ thế.

arg_scope là cách tránh lặp lại việc cung cấp cùng một đối số lặp đi lặp lại cho cùng một loại lớp.

Ví dụ từ source documentation:

Ví dụ về cách sử dụng tf.contrib.framework.arg_scope:

from third_party.tensorflow.contrib.layers.python import layers 
    arg_scope = tf.contrib.framework.arg_scope 
    with arg_scope([layers.conv2d], padding='SAME', 
       initializer=layers.variance_scaling_initializer(), 
       regularizer=layers.l2_regularizer(0.05)): 
    net = layers.conv2d(inputs, 64, [11, 11], 4, padding='VALID', scope='conv1') 
    net = layers.conv2d(net, 256, [5, 5], scope='conv2') 

Cuộc gọi đầu tiên conv2d sẽ cư xử như sau:

layers.conv2d(inputs, 64, [11, 11], 4, padding='VALID', 
        initializer=layers.variance_scaling_initializer(), 
        regularizer=layers.l2_regularizer(0.05), scope='conv1') 

Cuộc gọi thứ hai để conv2d cũng sẽ sử dụng sốmặc định 0 's cho padding:

layers.conv2d(inputs, 256, [5, 5], padding='SAME', 
        initializer=layers.variance_scaling_initializer(), 
        regularizer=layers.l2_regularizer(0.05), scope='conv2') 

Ví dụ về làm thế nào để tái sử dụng một arg_scope:

with arg_scope([layers.conv2d], padding='SAME', 
       initializer=layers.variance_scaling_initializer(), 
       regularizer=layers.l2_regularizer(0.05)) as sc: 
    net = layers.conv2d(net, 256, [5, 5], scope='conv1') 
    .... 
    with arg_scope(sc): 
    net = layers.conv2d(net, 256, [5, 5], scope='conv2') 
Các vấn đề liên quan