我有形状的张量A (2,4,2),形状的张量B (4,4),所有的值都是int。A中的条目从0到3。
我想要创建一个形状的张量C(2,4,2)。
for循环代码类似于:
for i in range(2):
for j in range(2):
for k in range(4):
C[i][k][j] = B[k][A[i][k][j]]
我如何在tensorflow中创建这样的张量C?
谢谢。
我正在寻找最好的和优化的方式(没有循环),以获得从3D张量的最大值为基础的2D最大张量使用TensorFlow 1.14。假设我们有这个张量和这个函数(为了理解-它不工作-):
def get_Max(inputs):
max_indices = [0,0,0]
for i in range(16):
for j in range(2048):
for k in range(10):
if(inputs[max_indices[0],max_indices[1],max_indices[2]]<inp
我正在构建一个函数,它以一种特定的方式将来自一个模型分支的输入与来自另一个模型分支的输入相乘,但是访问张量的特定部分并不是我所期望的。
最小例子:假设我们得到两个张量,其中一个包含[1, 2],另一个包含[10, 20, 30],其中一个输出应该是[1] x [10, 20, 30],方法是取第一个张量的第一个值。
如果我从创建这样的变量开始:
import keras.backend as K
import numpy as np
from keras.layers import Multiply
x = K.variable(value=np.array([1,2]))
y = K
假设我们有一个卷积神经网络训练分类(w.l.o.g. )。灰度)图像,张量流。
给定经过训练的网络和测试图像,可以跟踪它的哪些像素是显着的,或“等效”哪些像素对图像的输出分类最负责。在这个中给出了Theano中一个很好的解释和实现细节。
假设对于与输入图像直接相关的第一层卷积,我们对每个卷积核wrt的参数都有梯度。分类函数。
如何将梯度传播回输入层,从而在图像的每个像素上计算偏导数?
传播和积累的梯度,将给我们突出的像素(他们是那些大的幅度导数)。
以求渐变wrt。到目前为止,第一层的内核是:
1. Replaced the usual loss operator with t
我有一个形状为(100, 80000, 4)的torch cuda张量A,和另一个形状为(1, 80000, 1)的cuda张量B。我想做的是,对于第二维中的每个元素i (从0到79999),取张量B的值(它将从0到99,并指出要取A的第一维中的哪个值。 另一个问题是,对于B (B[0, i, 0])的这个元素,我想从A中提取一个片段,即A[lower_bound:upper_bound, i:i+1, :]。 总而言之,我的张量B有我想要从A中切出的切片中心的索引。我想知道,是否有一种方法,可以更快地完成我正在使用以下代码所做的事情(例如。使用cuda) A # tensor of sh
在这种情况下,我有一个张量,其第一个维度与批处理大小相对应,例如:
tensor = tf.placeholder(tf.float32, shape=[None, 256, 256,3],name="placeholder_input")
现在我有一个张量函数"myfunc",作用于一个大小为256, 256,3的张量,我想要应用与批次数一样多次的张量,以得到大小为None,256,256,3的输出。如果形状不是动态的,我会简单地这样做:
output_tensor = tf.stack([myfunc(tensor [k,:,:,:] for k in ra
我正在尝试实现一个自定义损失函数,它需要取模型输出张量中的值的对数。张量也可以包含零,所以我只想取非零值并计算对数。
输出张量的形状为(20,224,224)。我可以使用下面的函数获得沿0轴的非零元素的数量。
#To get the number of nonzero elements along the axis 0
count = K.tf.count_nonzero(y,axis=0)
但是我不能理解如何计算非零对数。我可以想出下面的numpy解决方案,但不确定它是否等同于keras。
loss = np.log2(y, out=np.zeros_lik
我试图了解在DL框架中矩阵乘法是如何在二维上工作的,我偶然发现了一篇文章。他用Keras来解释同样的事情,这对他来说很管用。但是,当我试图在Pytorch中复制相同的代码时,它会失败,与下面代码的输出中的错误一样。
火炬代码:
a = torch.ones((2,3,4))
b = torch.ones((7,4,5))
c = torch.matmul(a,b)
print(c.shape)
输出: RuntimeError:在非单例维数为0时,张量a (2)的大小必须与张量b (7)的大小匹配。
Keras代码:
a = K.ones((2,3,4))
b = K.ones((7,
我想把两个不同等级的张量相乘,例如:
tensor A -> (i x j x k x l)
tensor B -> (l x m)
来得到另一个具有这个维度的张量。
tensor C -> (i x j x k x m) = (i x j x k x l)*(l x m)
在tensorflow中,我必须一直进行整形,以获得如下输出
(A.reshape(-1,l)*B).reshape(i,j,k,m)
还有没有其他直接做这个的操作?