Преобразование функции reverse () из кода Tensorflow в версию .11rc - PullRequest
0 голосов
/ 18 сентября 2018

Я использую версию TensorFlow: 0.11.0rc0 и преобразовываю код в эту версию, чтобы его можно было запускать на моем AMD GPU. Мне трудно читать старую документацию, так как кажется, что с течением времени тензорный поток сильно изменился. Любое понимание было бы полезно с функцией reverse (), и было бы полезно узнать, как его изменить, чтобы оно работало.

Вот код для сети, которую я хочу преобразовать в .11, но, как я понимаю, функция реверса теперь работает по-разному:

# Build the graph
train_graph = tf.Graph()
# Set the graph to default to ensure that it is ready for training
with train_graph.as_default():

# Load the model inputs    
input_data, targets, lr, keep_prob, summary_length, max_summary_length, text_length = model_inputs()

# Create the training and inference logits
training_logits, inference_logits = seq2seq_model(tf.reverse(input_data,[-1]),  
                                                  targets,
                                                  keep_prob, 
                                                  text_length,
                                                  summary_length,
                                                  max_summary_length,
                                                  len(vocab_to_int)+1,
                                                  rnn_size, 
                                                  num_layers, 
                                                  vocab_to_int,
                                                  batch_size
                                                  )

# Create tensors for the training logits and inference logits
training_logits = tf.identity(training_logits[0].rnn_output, 'logits')
inference_logits = tf.identity(inference_logits[0].sample_id, name='predictions')

# Create the weights for sequence_loss, the sould be all True across since each batch is padded
masks = tf.sequence_mask(summary_length, max_summary_length, dtype=tf.float32, name='masks')

with tf.name_scope("optimization"):
    # Loss function
    cost = tf.contrib.seq2seq.sequence_loss(
        training_logits,
        targets,
        masks)

    # Optimizer
    optimizer = tf.train.AdamOptimizer(learning_rate)

    # Gradient Clipping
    gradients = optimizer.compute_gradients(cost)
    capped_gradients = [(tf.clip_by_value(grad, -5., 5.), var) for grad, var in gradients if grad is not None]
    train_op = optimizer.apply_gradients(capped_gradients)
print("Graph is built.")
graph_location = "./graph"
print(graph_location)
train_writer = tf.summary.FileWriter(graph_location)
train_writer.add_graph(train_graph)
...