我有一个形状为[x, y]的张量,我想要减去平均值,然后逐行除以标准差(即我想对每一行做这件事)。在TensorFlow中执行此操作的最有效方法是什么?
当然,我可以按如下方式遍历各行:
new_tensor = [i - tf.reduce_mean(i) for i in old_tensor]
...to减去平均值,然后做一些类似的事情来找出标准差并除以它,但这是在TensorFlow中做这件事的最好方法吗?
以下是针对我面临的问题的MWE: import tensorflow as tf
with tf.GradientTape() as tape:
x = tf.Variable(0.0)
y = tf.Variable(x)
z = x
print(tape.gradient(y, x))
# None
print(tape.gradient(z, x))
# 1.0 显然,在这种特殊情况下,这很容易修复,但在我面临的实际用例中,与递归神经网络有关,我需要使用tf.Variable从连接其他张量形成张量,例如: Dout = tf.Variable([seed]) # in
如何使用布尔张量创建if语句?更准确地说,我正在尝试将大小为1的张量与常量进行比较,检查张量中的值是否小于常量。我想我必须使常量成为它自己的大小为1的张量,并使用方法来检查第一个张量是否小于第二个张量,但我不确定如何使得到的布尔张量正确地适合if语句。只需将其作为if语句的查询,就可以使if语句始终返回true。
编辑:这或多或少是代码的样子。但是,无论它是否有参数,我都会得到错误'bool' object has no attribute 'name',这让我认为问题在于它没有返回TensorFlow对象。
pred = tf.placeholder(tf.b
我有一个列中有氨基酸原始输入的数据。假设df['wordstring']列中的值的最大长度是400。根据不同氨基酸的数量,词汇表的总大小是20。此外,假设我有1M行序列。我知道如何为每个序列创建一个热编码。我想做的是创建一个尺寸为20X400X1M的3D矩阵(张量)。有没有办法用TensorFlow做到这一点?Pytorch也可以作为替代。
例如:假设s1 = df['wordstring'][0] (= 'a s g y t f t s y g i s w v r q ... ')和len(s1) = 160。因此,我必须获得160个
我定义了一个简单的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
Tensorflow有tf.logical_and()和tf.logical_or()来比较两个布尔张量,即tf.logical_and(x,y)==TRUE if x==TRUE and y==TRUE 。不过,我在Keras后端找不到这样的东西。它们有keras.backend.any()和.all(),但这是为了在张量内进行聚合,而不是在张量之间。我一直不得不使用嵌套K.switch()函数的变通方法,但这是令人痛苦的不雅之处。
我正在努力将轴从X和Y轴更改为X和Z轴。有人能帮帮我吗? using System.Collections.Generic;
using UnityEngine;
public class CameraDragMove : MonoBehaviour
{
public float panSpeed = 10f;
void Update()
{
if (Input.GetMouseButton(0)) // right mouse button
{
var newPosition = new Vector3()
我有一个张量X,它的形状是(None,56,300,1),还有一个张量y,它的形状是(None,15),这些张量的第一个维数是batch_size,我想用y作为指数得到张量z,z的形状是(None,15,300,1)。有什么像样的方法吗?
我编写了一个简单的代码来测试,因为我发现这对我来说很困难,因为在实践中我不知道batch_size(这些张量的第一维不是),
这是我的测试代码:
import numpy as np
import tensorflow as tf
# In this test code , batch_size is 4.
# params' shape is (
我有一个想要使用plotly绘制的10x12数组。X轴的长度是10,y轴的长度是12。我希望该图在x轴上的范围是10,在y-axis上的范围是12。但事实并非如此。我在两个轴上都得了10分。我已经包含了一个MWE来重现这个问题。 import numpy as np
import plotly.graph_objects as go
data_array = np.empty((10, 12))
for i in range(10):
for j in range(12):
data_array[i, j] = i+j
x = np.linspace(1, 10,
稀疏张量与自身或稠密张量的乘法在TensorFlow中似乎不起作用。下面的示例
from __future__ import print_function
import tensorflow as tf
x = tf.constant([[1.0,2.0],
[3.0,4.0]])
y = tf.SparseTensor(indices=[[0,0],[1,1]], values=[1.0,1.0], shape=[2,2])
z = tf.matmul(x,y)
sess = tf.Session()
sess.run(tf.initialize_all
仅仅出于教育目的,我试图在TensorFlow主页上的Basic training loops教程的基础上创建一个简单的神经网络,对平面中的点进行分类。 因此,我将[0,1]x[0,1]中的一些点存储在形状(250, 2, 1)的张量x中,并将相应的标签(1. or 0.)存储在形状(250,1,1)的张量y中。那我就这么做 import tensorflow as tf
w0 = tf.Variable(tf.random.normal([4,2]), name = 'w0')
w1 = tf.Variable(tf.random.normal([1,4]), name
我从tensorflow开始,当涉及到张量的级别以及它们如何相互作用时,我有一个很大的问题。
我随身携带了以下代码:
w = tf.Variable(tf.constant([0.2,0.6]))
x = tf.placeholder(tf.float32)
y = w * x
如您所见,这是一个非常简单的设置。
但是,当我执行print w时,输出是Tensor("Variable_13/read:0", shape=(2,), dtype=float32)。
shape(2,)是什么意思?逗号表示什么?
此外,以下是在sess = tf.Session()和初
我正在和tensorflow一起研究一个算法。以下是想要的代码的NumPy版本: x = [1,2,3,4,5,6,7,8,9,10]
sets = {1,5,7}
y = [0,0,0,0,0,0,0,0,0,0]
for i in range(10):
if i in sets:
y[i] = x[i] 它会得到结果: y = [0,2,0,0,0,6,0,8,0,0] 如何在tensorflow中实现此功能?有没有办法使用相同的逻辑在tensorflow中实现这一点,而不是在计算后将NumPy数组转换为张量,而是使用张量执行所有操作(例如,使用张量来索引张量,
在numpy和tensorflow中,如果较小矩阵的形状是较大矩阵的后缀,则可以添加不同维数的矩阵(或张量)。这是一个示例:
x = np.ndarray(shape=(10, 7, 5), dtype = float)
y = np.ndarray(shape=(7, 5), dtype = float)
对于这两个矩阵,运算x+y是以下操作的快捷方式:
for a in range(10):
for b in range(7):
for b in range(5):
result[a,b,c] = x[a,b,c] + y[b,c]
然而,在