2016-07-14 29 views
6

Xin lỗi nếu tôi làm hỏng tiêu đề, tôi không biết làm thế nào để cụm từ này. Dù sao, tôi có một tensor của một tập hợp các giá trị, nhưng tôi muốn đảm bảo rằng mọi phần tử trong tensor có một phạm vi từ 0 - 255, (hoặc 0 - 1 hoạt động quá). Tuy nhiên, tôi không muốn làm cho tất cả các giá trị thêm lên đến 1 hoặc 255 như softmax, tôi chỉ muốn giảm quy mô các giá trị.Thay đổi tỷ lệ của một tensor trong tensorflow

Có cách nào để thực hiện việc này không?

Cảm ơn!

Trả lời

11

Bạn đang cố gắng chuẩn hóa dữ liệu. Một công thức bình thường cổ điển này là một:

normalize_value = (value − min_value)/(max_value − min_value) 

Việc thực hiện trên tensorflow sẽ trông như thế này:

tensor = tf.div(
    tf.subtract(
     tensor, 
     tf.reduce_min(tensor) 
    ), 
    tf.subtract(
     tf.reduce_max(tensor), 
     tf.reduce_min(tensor) 
    ) 
) 

Tất cả các giá trị của tensor sẽ được betweetn 0 và 1.

QUAN TRỌNG: đảm bảo dây dẫn có giá trị float/double hoặc tensor đầu ra chỉ có giá trị 0 và 0. Nếu bạn có một tensor số nguyên gọi trước tiên:

tensor = tf.to_float(tensor) 
2

sigmoid(tensor) * 255 nên làm điều đó.

Các vấn đề liên quan