Tôi đang cố gắng làm việc với LSTMs trong Tensor Flow. Tôi tìm thấy một hướng dẫn trực tuyến, nơi một tập hợp các chuỗi được lấy vào và hàm mục tiêu bao gồm đầu ra cuối cùng của LSTM và các giá trị đã biết. Tuy nhiên, tôi muốn có thông tin sử dụng chức năng khách quan của mình từ mỗi đầu ra. Cụ thể, tôi đang cố gắng để có LSTM học tập các chuỗi (tức là tìm hiểu tất cả các ký tự trong các từ trong câu) .:Tensorflow: Danh sách Tensors cho Chi phí
cell = rnn_cell.BasicLSTMCell(num_units)
inputs = [tf.placeholder(tf.float32,shape=[batch_size,input_size]) for _ in range(seq_len)]
result = [tf.placeholder(tf.float32, shape=[batch_size,input_size]) for _ in range(seq_len)]
W_o = tf.Variable(tf.random_normal([num_units,input_size], stddev=0.01))
b_o = tf.Variable(tf.random_normal([input_size], stddev=0.01))
outputs, states = rnn.rnn(cell, inputs, dtype=tf.float32)
losses = []
for i in xrange(len(outputs)):
final_transformed_val = tf.matmul(outputs[i],W_o) + b_o
losses.append(tf.nn.softmax(final_transformed_val))
cost = tf.reduce_mean(losses)
Làm quả này trong các lỗi:
TypeError: List of Tensors when single Tensor expected
thế nào Tôi có nên khắc phục vấn đề này không? Liệu các tf.reduce_mean()
có trong một danh sách các giá trị tensor, hoặc là có một số đối tượng tensor đặc biệt mà có họ?
OK, tôi đã hiểu lầm. Tôi đã xóa câu trả lời của tôi :) Bạn có thể muốn chỉ hiển thị ví dụ mã từ hướng dẫn trong bài đăng của bạn, vì nó có thể giúp người mới đến (và tôi cũng muốn hiểu). – Will
Mã tôi đang nói đến là tại https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/models/rnn/ptb/ptb_word_lm.py#139 và phần về đầu vào ở dòng 90 trong đó tập tin. num_steps trong dòng 90 của tệp đó là giống nhau (xấp xỉ) như seq_len trong mã OP. Bạn có đề xuất nội tuyến phương thức __init__ hay chỉ cung cấp liên kết tới tệp không? –
Ah, tôi hiểu, đó là một phương pháp rất lớn. Tôi nghĩ rằng liên kết đến tập tin, với một vài dòng có liên quan và một chút giải thích, sẽ làm cho nó rõ ràng nhất.Bài viết của bạn có vẻ là một điểm khởi đầu tuyệt vời, nhưng nhìn thấy một "ví dụ chính xác" của các phần của mã mà OP không làm đúng cách sẽ rất hữu ích tôi nghĩ. Một chiến lược khác mà tôi sử dụng đôi khi chỉ cần dán toàn bộ phương thức/lớp nhưng thay thế các dòng không liên quan bằng '# ...' để rút ngắn nó. – Will