Đây có lẽ là hơi muộn cho lớp học của bạn, nhưng hy vọng nó sẽ giúp một ai đó.
Nếu mục tiêu của bạn là chỉ cần ra một mảng len(input)xlen(input)
, bạn có thể ma trận nhân một tensor 1xlen(input)
với mảng đầu vào của bạn sau khi mở rộng kích thước của nó để len(input)x1
:
input_ = tf.placeholder(tf.float32, [len(input)])
input_shape = input_.get_shape().as_list()
tfvar = tf.Variable(tf.random_normal([1,input_shape[0]], mean=0.0,
stddev=.01, dtype=tf.float32))
def function(input_):
x = tf.expand_dims(input_, axis=1) # dims = len(input)x1
return tf.matmul(x,tfvar) # mtrx multiplication produces 3x3 mtrx
Chức năng này nên khái quát cho bất kỳ 1D input_
tensor và tạo ra một dây chuyền hình vuông len(input_)xlen(input_)
.
Nếu mục tiêu của bạn là để đào tạo một biến tensorflow để sản xuất sản lượng cung cấp chính xác, sau đó bạn có thể đào tạo tfvar
với một chức năng mất mát và tối ưu hóa:
desired_output = tf.constant([[0.09003057, 0.24472847, 0.66524096],
[0.26894142, 0.73105858, 0.0 ],
[1.0, 0.0, 0.0 ]],
dtype=tf.float32)
actual_output = function(input_)
loss = tf.reduce_mean(tf.square(actual_output-desired_output))
optimizer = tf.train.AdamOptimizer().minimize(loss)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
cost, opt = sess.run([loss, optimizer], feed_dict={input_:input})
Lưu ý, nếu bạn muốn có một buổi tập mạnh mẽ hơn, thêm một thiên vị, một phi tuyến tính, và nhiều lớp hơn.
Bạn có thể hiển thị mã cho chúng tôi bằng vòng lặp while không? – Distjubo
Bạn muốn làm gì với đầu vào? – aarbelle