tf.matmul(A, B, a_is_sparse=True) рдЧреВрдврд╝ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде a = ops.convert_to_tensor(a, name="a") рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:
import tensorflow as tf
import numpy as np
x = tf.sparse_placeholder(tf.float32)
y = tf.Variable(tf.random_uniform([9, 9], minval=0.0, maxval=1.0, dtype=tf.float32))
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
indices = np.array([[3, 2], [4, 5]], dtype=np.int64)
values = np.array([1.0, 2.0], dtype=np.float32)
shape = np.array([9, 9], dtype=np.int64)
_ = sess.run(tf.matmul(x, y), feed_dict={
x: tf.SparseTensorValue(indices, values, shape)})
рддреНрд░реБрдЯрд┐:
рд▓рд╛рдЗрди 12, рдЗрдВрдЪ
_ = sess.run(tf.matmul(x, y, a_is_sparse=True), Feed_dict={
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/tensorflow/python/ops/math_ops.py", рд▓рд╛рдЗрди 1189, matmul рдореЗрдВ
a = ops.convert_to_tensor(a, name="a")
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", рд▓рд╛рдЗрди 620, Convert_to_tensor рдореЗрдВ
рд░рд┐рдЯ = рд░реВрдкрд╛рдВрддрд░рдг_рдлрдВрдХ (рдорд╛рди, dtype = dtype, рдирд╛рдо = рдирд╛рдо, as_ref = as_ref)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/tensorflow/python/ops/constant_op.py", рд▓рд╛рдЗрди 179, _constant_tensor_conversion_function рдореЗрдВ
рд╡рд╛рдкрд╕реА рд╕реНрдерд┐рд░рд╛рдВрдХ (v, dtype=dtype, name=name)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/tensorflow/python/ops/constant_op.py", рдкрдВрдХреНрддрд┐ резремреи, рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ
tensor_util.make_tensor_proto(рдорд╛рди, dtype=dtype, size=shape))
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/tensorflow/python/framework/tensor_util.py", рд▓рд╛рдЗрди 421, make_tensor_proto рдореЗрдВ
tensor_proto.string_val.extend([compat.as_bytes(x) for x in proto_values])
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/tensorflow/python/util/compat.py", рд▓рд╛рдЗрди 44, as_bytes рдореЗрдВ
TypeError рдмрдврд╝рд╛рдПрдВ ('рдЕрдкреЗрдХреНрд╖рд┐рдд рдмрд╛рдЗрдирд░реА рдпрд╛ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ,% r'% рдмрд╛рдЗрдЯреНрд╕_or_text рдорд┐рд▓рд╛)
рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рдЕрдкреЗрдХреНрд╖рд┐рдд рдмрд╛рдЗрдирд░реА рдпрд╛ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдорд┐рд▓ рдЧрдпрд╛
рдЧреБрдгрди рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рд░рд▓ рд╕реЗ рдШрдиреЗ рдЯреЗрдВрд╕рд░ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
import tensorflow as tf
import numpy as np
x = tf.sparse_placeholder(tf.float32)
z = tf.sparse_tensor_to_dense(x)
y = tf.Variable(tf.random_uniform([9, 9], minval=0.0, maxval=1.0, dtype=tf.float32))
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
indices = np.array([[3, 2], [4, 5]], dtype=np.int64)
values = np.array([1.0, 2.0], dtype=np.float32)
shape = np.array([9, 9], dtype=np.int64)
_ = sess.run(tf.matmul(z, y), feed_dict={
x: tf.SparseTensorValue(indices, values, shape)})
@concretevitamin , рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ, рдпрд╛ рдпрд╣ рд╡рд┐рд░рд▓ рдЯреЗрдВрд╕рд░ рдХреА рдПрдХ рдЬреНрдЮрд╛рдд рд╕реАрдорд╛ рд╣реИред
рдЭрдВрдбреЗ a_is_sparse
рдФрд░ b_is_sparse
рдСрдкрд░реЗрдВрдб SparseTensor
s рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рджреЛ рдШрдиреЗ Tensor
рдСрдкрд░реЗрдВрдб рдкрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╕рдВрдХреЗрдд рд╣реИрдВред
рдПрдХ рд╕реНрдкрд╛рд░реНрд╕ рдЯреЗрдВрд╕рд░ рдФрд░ рдШрдиреЗ рдЯреЗрдВрд╕рд░ рдХреЛ рдкрд░рд┐рдкрдХреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп tf.sparse_tensor_dense_matmul()
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЭрдВрдбреЗ a_is_sparse рдФрд░ b_is_sparse рдСрдкрд░реЗрдВрдб рдХреЛ SparseTensors рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рджреЛ рдШрдиреЗ рдЯреЗрдВрд╕рд░ рдСрдкрд░реЗрдВрдб рдкрд░ рдПрдХ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╕рдВрдХреЗрдд рд╣реИрдВред
рдпрд╣ matmut рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдзреНрд╡рдЬ a_is_sparse
рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЭрдВрдбреЗ
a_is_sparse
рдФрд░b_is_sparse
рдСрдкрд░реЗрдВрдбSparseTensor
s рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рджреЛ рдШрдиреЗTensor
рдСрдкрд░реЗрдВрдб рдкрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╕рдВрдХреЗрдд рд╣реИрдВредрдПрдХ рд╕реНрдкрд╛рд░реНрд╕ рдЯреЗрдВрд╕рд░ рдФрд░ рдШрдиреЗ рдЯреЗрдВрд╕рд░ рдХреЛ рдкрд░рд┐рдкрдХреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп
tf.sparse_tensor_dense_matmul()
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред