我正在尝试用Tensorflow重写下面的Python代码。但是,我在使用tf.map_fn迭代张量时遇到了问题。
这里depth是形状[batch_size,256,256]的张量,normal是形状[batch_size,256,256,3]的张量,scale是形状[batch_size,256,256]的张量。
for b in range(0,batch_size):
depth[b,:,:] = [scale[b,0,0] + (scale[b,0,1] - scale[b,0,0])* x for x in depth[b,:,:]]
normal[b,:,:,:]
我正在尝试将张量对象中的一个矩阵切片为numpy矩阵,并将其用于部分计算。但是从张量对象到numpy数组的赋值不会像下面这样工作。
import tensorflow as tf
import numpy as np
def assignC():
C_copy = np.zeros((2,2))
C = tf.matmul(tf.transpose(x), x)
C_copy[0,0] = C[0,0]
#C_copy[0,0] = C[0,0].eval() # error saying "You must feed a value for pla
我定义了一个简单的conv2d函数来计算输入和内核(都是2D张量)之间的相互关系,如下所示:
import torch
def conv2D(X, K):
h = K.shape[0]
w = K.shape[1]
ĥ = X.shape[0] - h + 1
ŵ = X.shape[1] - w + 1
Y = torch.zeros((ĥ, ŵ))
for i in range (ĥ):
for j in range (ŵ):
Y[i, j] = (X[i: i+h, j: j+w]*K).sum
试图从张量流中引导数据是很困难的,我无法将数据分开。
从binary_alpha_digits加载dataset tensorflow_datasets。将数据集分为60%用于培训,40%用于测试。
我试过:
from matplotlib import pyplot as plt
import tensorflow as tf
from tensorflow.keras import layers
port tensorflow_datasets as tfds
train_ds, test_ds = tfds.load('BinaryAlphaDigits', split
我发现Tensorflow提供了scatter_update()来为0维中的张量片赋值。例如,如果张量T是三维的,我可以将值v[1, :, :]赋值给T[i, :, :]。
a = tf.Variable(tf.zeros([10,36,36]))
value = np.ones([1,36,36])
d = tf.scatter_update(a,[0],value)
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print a.eval()
sess.run(d)
我已经学会了如何在一维上分割张量。
我已经学习了如何切片一个2D张量,给出一个特定值的一维张量。
两者都使用tf.gather(),但我很确定我需要tf.gather_nd(),尽管我使用它显然是错误的。
在numpy中,我有一个5x52D数组,我可以使用带有行和列索引的np.ix_()对2x2数组进行切片(对于行和列,我总是需要相同的索引,从而得到一个平方矩阵):
import numpy as np
a = np.array([[1,2,3,4,5],[2,1,6,7,8],[3,6,1,9,10],[4,7,9,1,11],[5,8,10,11,1]])
a
阵列([ 1,2,3,4
我正在做一个项目,我指的是一个已经在Pytorch中建立的网络。它的一个层有conv2d层,其中group =某个值。当我在Tensorflow中构建项目时。考虑到我在tensorflow的conv2d层中没有找到任何组参数,我该如何处理这个特定的层呢?我在网上搜索,但找不到任何具体的东西,比如小组所说的是每个通道的卷积。我找到的最接近的东西是tf.nn.separable_conv2d,但仍然不确定如何在其中设置参数。 Pytorch层是conv2d(input ,weight , groups = x ),其中输入和权重是4d张量。有人能帮我在Tensorflow中创建这个层吗?