小编YW *_*won的帖子

tf.sub和tensorflow中的只是减去操作有什么区别?

我正在尝试使用Tensorflow.这是一个非常简单的代码.

train = tf.placeholder(tf.float32, [1], name="train")
W1 = tf.Variable(tf.truncated_normal([1], stddev=0.1), name="W1")
loss = tf.pow(tf.sub(train, W1), 2)
step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
Run Code Online (Sandbox Code Playgroud)

只需忽略优化部分(第4行).它将采用浮点数并训练W1以增加平方差.

我的问题很简单.如果我只使用减号代替tf.sub"如下所示,有什么不同?会导致错误的结果吗?

loss = tf.pow(train-W1, 2)
Run Code Online (Sandbox Code Playgroud)

当我更换它时,结果看起来一样.如果它们是相同的,为什么我们需要使用"tf.add/tf.sub"的东西呢?

内置的反向传播计算只能通过"tf.*"来完成吗?

python tensorflow

20
推荐指数
1
解决办法
1万
查看次数

如何在docker容器中使用matplotlib.pyplot?

我在一个名为的docker镜像中有一定的Python设置deep.我曾经运行python代码

docker run --rm -it -v "$PWD":/app -w /app deep python some-code.py
Run Code Online (Sandbox Code Playgroud)

有关信息,-v-w选择在当前路径容器链接本地文件.

但是,我不能用matplotlib.pyplot.让我们说test.py

import matplotlib.pyplot as plt
plt.plot([1,2], [3,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误.

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 3147, in plot
   ax = gca()
 File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 928, in gca
   return gcf().gca(**kwargs)
 File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 578, in gcf
   return figure()
 File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 527, in figure
**kwargs)
 File "/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_tkagg.py", line 84, in …
Run Code Online (Sandbox Code Playgroud)

python matplotlib docker

14
推荐指数
1
解决办法
1万
查看次数

在Tensorflow中,如何使用tf.gather()作为最后一个维度?

我试图在层的部分连接的最后维度方面收集张量的切片.因为输出张量的形状是[batch_size, h, w, depth],我想根据最后一个维度选择切片,例如

# L is intermediate tensor
partL = L[:, :, :, [0,2,3,8]]
Run Code Online (Sandbox Code Playgroud)

但是,tf.gather(L, [0, 2,3,8])似乎只适用于第一个维度(对吧?)任何人都可以告诉我该怎么做?

python deep-learning tensorflow

12
推荐指数
3
解决办法
3万
查看次数

在Tensorflow中,如何重命名某个操作名称?

我认为这个问题可能听起来很奇怪.比方说,有一个张量a.

x = tf.placeholder(tf.float32, [None, 2400], name="x")
y = tf.placeholder(tf.float32, [None, 2400], name="y")
a = tf.add(x, y, name="a")
Run Code Online (Sandbox Code Playgroud)

是否有一种有效的方式来引用a不同的名称,比如out?我在想像一个虚拟的操作

b = tf.add(a, 0, name="out")
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我正在尝试不同的网络架构,而且无论架构如何,我都希望以一致的名称访问输出张量

tf.get_default_graph().get_tensor_by_name("out:0")`
Run Code Online (Sandbox Code Playgroud)

目前,输出张量取决于fc1/fc1wb:0或等的架构fc2/fc2wb:0.如何用特定名称包装最终操作?

python tensorflow

10
推荐指数
1
解决办法
6666
查看次数

是否有可能在ssh上看到tensorboard?

我在ssh服务器上远程运行tensorflow代码.(例如,ssh -X account@server.address)

它说,在远程服务器上You can navigate to http://0.0.0.0:6006.

在这种情况下,我该如何检查张量板?如何浏览远程计算机的地址?我试图搜索,但似乎没有有用的信息.

python tensorflow tensorboard

7
推荐指数
1
解决办法
7128
查看次数

在opencv中索引矩阵的最佳方法

让我们说,A并且B是相同大小的矩阵.在Matlab,我可以使用如下的简单索引.

idx = A>0;
B(idx) = 0
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做OpenCV?我应该使用

for (i=0; ... rows)
    for(j=0; ... cols)
        if (A.at<double>(i,j)>0) B.at<double>(i,j) = 0;
Run Code Online (Sandbox Code Playgroud)

这样的事情?是否有更好(更快,更有效)的方式?

而且,在OpenCV我尝试的时候

Mat idx = A>0;
Run Code Online (Sandbox Code Playgroud)

变量idx似乎是一个CV_8U矩阵(不是布尔而是整数).

c++ matlab opencv

6
推荐指数
2
解决办法
2504
查看次数

如何在 Tensorflow 中使用 L2 池化?

我正在尝试实现一种使用 L2 池化的 CNN 架构。参考论文特别指出L2池化比最大池化更好,所以我想在激活函数之后尝试L2池化。

然而,Tensorflow似乎只提供tf.nn.avg_pool// 。tf.nn.max_poolingtf.nn.max_pool_with_argmax

有没有办法在 Tensorflow 中实现 L2 池化?

conv = tf.....
h = tf.nn.tanh(conv)
p = tf.pow(tf.nn.ave_pool(tf.pow(h,2)), 0.5)
Run Code Online (Sandbox Code Playgroud)

这会等价吗?这在反向传播方面效果好吗?

python conv-neural-network tensorflow

6
推荐指数
1
解决办法
2455
查看次数

在 Tensorflow 中,我可以使用 tf.gather() 进行部分连接吗?

我正在尝试实现层之间的部分连接。比方说,我只想使用一些特征图,例如,第一个和第三个。

  • 为此目的使用 tf.gather() 是否正确?
  • 我可以只使用索引运算符 [ ] 而不是 tf.gather() 如下吗?
  • 收集索引是否适用于反向传播?我很难想象 Tensorflow 如何在内部知道连接来自内部反向传播过程中的第一个和第三个(这些信息是硬编码的)。函数 tf.gather 是否记得连接?

代码:

# let say, L1 is layer1 output of shape [batch_size x image_size x image_size x depth1]
partL1 = L1[:, :, :, [0,2]]
# W2 is a tf variable of shape [5, 5, 2, depth2]
conv2 = tf.nn.conv2d(partL1, W2)
Run Code Online (Sandbox Code Playgroud)

python deep-learning tensorflow

6
推荐指数
1
解决办法
1156
查看次数

如何在 Tensorflow 中实现逐元素一维插值?

我想对 Tensorflow 中张量的每个元素应用一维插值。

例如,如果它是一个矩阵,我们可以使用interp1d.

from scipy.interpolate import interp1d
q = np.array([[2, 3], [5, 6]])   # query
x = [1, 3, 5, 7, 9]              # profile x
y = [3, 4, 5, 6, 7]              # profile y
fn = interp1d(x, y)
# fn(q) == [[ 3.5, 4.], [5., 5.5]]
Run Code Online (Sandbox Code Playgroud)

如果我们有一个张量q

q = tf.placeholder(shape=[2,2], dtype=tf.float32)
Run Code Online (Sandbox Code Playgroud)

我怎样才能有等效的逐元素一维插值?有人可以帮忙吗?

python interpolation tensorflow

5
推荐指数
1
解决办法
3336
查看次数

opencv:矩阵分配混乱

任何人都可以验证/回答我的理解/问题吗?

在OpenCV中,假设

Mat A; // Suppose A has some values in it
Mat B=A;
Run Code Online (Sandbox Code Playgroud)
  1. 如果我更新B,A也会受到影响.对?它似乎基本上通过引用分配.

假设一个函数"void a_function(Mat argument){..//change argument ..}".

  1. 在你打电话给"a_function(A)"之后,A也会受到影响,对吧?

  2. 那么,为什么(或者在哪种情况下)我们需要"void a_function(Mat&argument)",如果它已经通过引用调用了?&这里可以有特殊意义吗?

  3. 如果你不希望A受到函数调用的影响,哪一个更好习惯?

    • 打电话给a_function(A.clone())
    • 通过调用a_function(A)并声明函数使用const Mat &argument并将责任留给函数?

假设您需要计算像行一样的跨行产品

L.row(i) = A.row(i).cross(B.row(i));
Run Code Online (Sandbox Code Playgroud)
  1. 在这种情况下,我可以安全地使用没有'clone()'的赋值的原因是中间结果矩阵(来自cross函数)将很快消失(?)(当退出当前本地范围时),对吧?

c++ opencv matrix assignment-operator

3
推荐指数
1
解决办法
1711
查看次数

在Tensorflow中,如果使用TFRecord输入(没有占位符)提供元图,如何使用恢复的元图

我用TFRecord输入管道训练了一个网络.换句话说,没有占位符.简单的例子是:

input, truth = _get_next_batch()  # TFRecord. `input` is not a tf.placeholder
net = Model(input)
net.set_loss(truth)
optimizer = tf...(net.loss)
Run Code Online (Sandbox Code Playgroud)

比方说,我获得了三个文件,ckpt-20000.meta,ckpt-20000.data-0000-of-0001,ckpt-20000.index.我明白了,以后可以使用该.meta文件导入元图并访问张量,例如:

new_saver = tf.train.import_meta_graph('ckpt-20000.meta')
new_saver.restore(sess, 'ckpt-20000')
logits = tf.get_collection("logits")[0]
Run Code Online (Sandbox Code Playgroud)

但是,元图在管道中从一开始就没有占位符.有没有办法可以使用元图和输入的查询推断?

有关信息,在查询应用程序(或脚本)中,我曾经使用占位符和恢复的模型权重定义模型(参见下文).我想知道我是否可以在没有重新定义的情况下使用元图,因为它会更加简单.

input = tf.placeholder(...)
net = Model(input)
tf.restore(sess, 'ckpt-2000')
lgt = sess.run(net.logits, feed_dict = {input:img})
Run Code Online (Sandbox Code Playgroud)

tensorflow

3
推荐指数
1
解决办法
2347
查看次数