Hãy nói rằng tôi đã mã sau:Làm cách nào để thêm điều kiện vào biểu đồ TensorFlow?
x = tf.placeholder("float32", shape=[None, ins_size**2*3], name = "x_input")
condition = tf.placeholder("int32", shape=[1, 1], name = "condition")
W = tf.Variable(tf.zeros([ins_size**2*3,label_option]), name = "weights")
b = tf.Variable(tf.zeros([label_option]), name = "bias")
if condition > 0:
y = tf.nn.softmax(tf.matmul(x, W) + b)
else:
y = tf.nn.softmax(tf.matmul(x, W) - b)
có công việc if
tuyên bố trong tính toán (Tôi không nghĩ như vậy)? Nếu không, làm cách nào tôi có thể thêm câu lệnh if
vào biểu đồ tính toán TensorFlow?
Cảm ơn bạn rất nhiều vì đã giải thích một cách chi tiết! –
@mrry Cả hai nhánh có được thực thi theo mặc định không? Tôi có tf.cond (c, lambda x: train_op1, lambda x: train_op2) và cả hai train_ops được thực hiện tại mỗi lần thực hiện cond độc lập với giá trị của c. Tôi có làm điều gì sai? –
@PiotrDabkowski Đây là một hành vi đôi khi đáng ngạc nhiên của 'tf.cond()', được xúc động khi [trong tài liệu] (https://www.tensorflow.org/api_docs/python/tf/cond). Tóm lại, bạn cần phải tạo các ops mà bạn muốn chạy có điều kiện * bên trong * các lambdas tương ứng. Mọi thứ bạn tạo ra bên ngoài lambdas nhưng tham chiếu đến cả hai nhánh sẽ thực hiện trong cả hai trường hợp. – mrry