草庐IT

sparse_tensor_dense_matmul

全部标签

python - 使用 HOSVD 分解后 sktensor/scikit-tensor 中的张量重建

我目前正在分解3-D张量,例如[user,item,tags]=rating。我在python中使用sktensor库进行分解。例如。T=np.zeros((3,4,2))T[:,:,0]=[[1,4,7,10],[2,5,8,11],[3,6,9,12]]T[:,:,1]=[[13,16,19,22],[14,17,20,23],[15,18,21,24]]T=dtensor(T)Y=hooi(T,[2,3,1],init='nvecs')现在函数hooi返回的是什么以及如何从中重建张量??? 最佳答案 首先,函数tucker_h

python - 用 numpy.NaN 初始化 scipy.sparse 矩阵的最快方法是什么?

我想用numpy数组初始化一个稀疏矩阵。numpy数组包含NaN作为我程序的零,初始化稀疏矩阵的代码如下:a=np.array([[np.NaN,np.NaN,10]])zero_a=np.array([[0,0,10]])spr_a=lil_matrix(a)zero_spr_a=lil_matrix(zero_a)printrepr(spr_a)printrepr(zero_spr_a)输出是1x3sparsematrixoftype'type'numpy.float64''with3storedelementsinLInkedListformat1x3sparsematrixof

python - tf.layers.dense() 如何与更高暗淡的输入交互?

在tensorflowlayers.dense(inputs,units,activation)中实现了一个具有任意激活函数的多层感知器层。输出=激活(matmul(输入,权重)+偏差)通常输入有shape=[batch_size,input_size]并且可能看起来像这样:(units=128和activation=tf.nn.relu是任意选择的)inputx=tf.placeholder(float,shape=[batch_size,input_size])dense_layer=tf.layers.dense(inputx,128,tf.nn.relu)我还没有找到任何关于如

python - 为什么 get_tensor_by_name 需要将端口附加到张量名称

我知道在按名称获取张量时我必须附加一个输出索引例)graph.get_tensor_by_name('example:0')其中:0是输出索引。但为什么这是必要的?here是tensorflow文档中get_tensor_by_name的链接。但是,它没有提到指定输出索引。 最佳答案 在TensorFlow中,名称为tf.Operation对象(对应于tf.Graph中的节点)和tf.Tensor对象以生成它作为输出的tf.Operation命名。由于tf.Operation可以有多个输出,为了唯一地命名tf.Tensor,我们将其

python - 如何重用 Dense 层?

我在Tensorflow中有一个网络,我想定义一个函数,通过tf.layers.dense层(显然是同一层)传递它的输入。我看到了reuse参数,但为了正确使用它,我似乎需要保留一个全局变量来记住我的函数是否已被调用。有更清洁的方法吗? 最佳答案 我找到了tf.layers.Dense比上面的答案更干净。您只需要一个预先定义的Dense对象。然后您可以重复使用它任意次。importtensorflowastf#DefineDenseobjectwhichisreusablemy_dense=tf.layers.Dense(3,nam

python - tf.multiply vs tf.matmul 计算点积

我有一个形状为[3,4]的(向量的)矩阵X,我想计算每对向量(X[1].X[1])和(X[1])之间的点积.X[2])...等我看到他们用的是余弦相似度代码tf.reduce_sum(tf.multyply(X,X),axis=1)计算向量矩阵中向量之间的点积。但是,此结果仅计算(X[i],X[i])之间的点积。我使用tf.matmul(X,X,transpose_b=True)计算每两个向量之间的点积,但我仍然很困惑为什么tf.multiply没有这样做我认为我的代码有问题。代码是:data=[[1.0,2.0,4.0,5.0],[0.0,6.0,7.0,8.0],[8.0,1.0,

python - Tensorflow中如何根据索引给Tensor赋值?

我想根据索引在张量中赋值。例如,根据tf.nn.max_pool_with_argmax的pooling值和对应的指标输出,我想将这些池值与索引一起放回原始的非池化张量中。我发现tf.nn.max_pool_with_argmax的输出索引被展平了。一个问题:如何将它们分解回Tensorflow中的坐标?另一个问题:在给定索引的情况下,如何将池化张量的每个值分配给原始非池化张量在Tensorflow中的位置?非常感谢。我试图编写代码来实现这一点,但我只能使用numpy。我不知道如何在tf.nn.max_pool_with_argmax之后获取扁平化索引并分配到Tensorflow中的u

python - 检查两个 scipy.sparse.csr_matrix 是否相等

我想检查是否有两个csr_matrix是平等的。如果我这样做:x.__eq__(y)我得到:raiseValueError("Thetruthvalueofanarraywithmorethanone"ValueError:Thetruthvalueofanarraywithmorethanoneelementisambiguous.Usea.any()ora.all().但是,这个效果很好:assert(zinxforziny)有更好的方法吗?也许改用一些scipy优化函数?非常感谢 最佳答案 我们可以假设它们的形状相同吗?In[

python - TensorFlow Estimator ServingInputReceiver 功能与 receiver_tensors : when and why?

在previousquestion中serving_input_receiver_fn的目的和结构在answer中进行了探索。:defserving_input_receiver_fn():"""Forthesakeoftheexample,let'sassumeyourinputtothenetworkwillbea28x28grayscaleimagethatyou'llthenpreprocessasneeded"""input_images=tf.placeholder(dtype=tf.uint8,shape=[None,28,28,1],name='input_images

python - Scipy.sparse.csr_matrix : How to get top ten values and indices?

我有一个很大的csr_matrix,我对前十个值及其每行的索引感兴趣。但是我没有找到一种像样的方法来操纵矩阵。这是我目前的解决方案,主要思想是逐行处理它们:row=csr_matrix.getrow(row_number).toarray()[0].ravel()top_ten_indicies=row.argsort()[-10:]top_ten_values=row[row.argsort()[-10:]]这样做,csr_matrix的优势没有得到充分利用。它更像是一个蛮力解决方案。 最佳答案 在这种情况下,我看不出csr格式有