小编Ric*_*ruz的帖子

TensorFlow:numpy.repeat()替代方案

我想以yp成对的方式比较我的神经网络中的预测值,所以我正在使用(回到我原来的numpy实现中):

idx = np.repeat(np.arange(len(yp)), len(yp))
jdx = np.tile(np.arange(len(yp)), len(yp))
s = yp[[idx]] - yp[[jdx]]
Run Code Online (Sandbox Code Playgroud)

这基本上创建了一个索引网格,然后我使用它.idx=[0,0,0,1,1,1,...]jdx=[0,1,2,0,1,2...].我不知道是否有更简单的做法...

无论如何,TensorFlow有一个tf.tile(),但似乎缺乏一个tf.repeat().

idx = np.repeat(np.arange(n), n)
v2 = v[idx]
Run Code Online (Sandbox Code Playgroud)

我收到错误:

TypeError: Bad slice index [  0   0   0 ..., 215 215 215] of type <type 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)

使用TensorFlow常量进行索引也无效:

idx = tf.constant(np.repeat(np.arange(n), n))
v2 = v[idx]
Run Code Online (Sandbox Code Playgroud)

-

TypeError: Bad slice index Tensor("Const:0", shape=TensorShape([Dimension(46656)]), dtype=int64) of type <class 'tensorflow.python.framework.ops.Tensor'>
Run Code Online (Sandbox Code Playgroud)

我的想法是将我的RankNet实现转换为TensorFlow.

tensorflow

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

TensorFlow用于二进制分类

我试图使这个MNIST示例适应二进制分类.

但是当我将NLABELSfrom NLABELS=2改为时NLABELS=1,loss函数总是返回0(精度为1).

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf

# Import data
mnist = input_data.read_data_sets('data', one_hot=True)
NLABELS = 2

sess = tf.InteractiveSession()

# Create the model
x = tf.placeholder(tf.float32, [None, 784], name='x-input')
W = tf.Variable(tf.zeros([784, NLABELS]), name='weights')
b = tf.Variable(tf.zeros([NLABELS], name='bias'))

y = tf.nn.softmax(tf.matmul(x, W) + b)

# Add summary ops to collect data
_ = tf.histogram_summary('weights', W)
_ …
Run Code Online (Sandbox Code Playgroud)

python neural-network tensorflow

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

C:为什么在2的幂中分配字符串长度?

为什么C程序员经常以2的幂分配字符串(char数组)?

你经常看到......

char str[128]
char str[512]
char str[2048]
Run Code Online (Sandbox Code Playgroud)

不太常见,你看...

char str[100]
char str[500]
char str[2000]
Run Code Online (Sandbox Code Playgroud)

这是为什么?

我理解答案将涉及以二进制方式处理的内存......但为什么我们不经常看到char str[384],这是128 + 256(两个的倍数).

为什么没有使用两个的倍数?为什么C程序员使用两个

c memory arrays string

15
推荐指数
2
解决办法
1484
查看次数

使用GPU作为视频卡和GPGPU

在我工作的地方,我们进行了大量的数值计算,我们正在考虑购买使用NVIDIA视频卡的工作站,因为CUDA(与TensorFlow和Theano合作).

我的问题是:这些计算机是否应该配备另一个视频卡来处理显示器并为GPGPU释放NVIDIA?

如果有人知道有关使用视频卡进行显示和GPGPU的硬数据,我将不胜感激.

gpu gpgpu theano tensorflow

11
推荐指数
2
解决办法
4553
查看次数

python多处理:没有收益递减?

假设我想要对一些密集计算(不是I/O绑定)进行并行化.

当然,我不想运行比可用处理器更多的进程,或者我会开始支付上下文切换(和缓存未命中).

精神上,我希望随着我增加nmultiprocessing.Pool(n),总时间将这样的表现:

小样

  1. 负斜率作为任务利用并行化
  2. 上下文切换的正斜率开始使我付出代价
  3. 高原

但实际上,我得到了这个:

真实

#!/usr/bin/env python

from math import factorial


def pi(n):
    t = 0
    pi = 0
    deno = 0
    k = 0
    for k in range(n):
        t = ((-1)**k)*(factorial(6*k))*(13591409+545140134*k)
        deno = factorial(3*k)*(factorial(k)**3)*(640320**(3*k))
        pi += t/deno
    pi = pi * 12/(640320**(1.5))
    pi = 1/pi
    return pi

import multiprocessing
import time
maxx = 20
tasks = 60
task_complexity = 500
x = range(1, maxx+1)
y = [0]*maxx

for i in x:
    p = …
Run Code Online (Sandbox Code Playgroud)

python multithreading multiprocess

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

ggplot格式斜体注释

我可以在ggplot注释中使用标记吗?

比方说,我有这个图:

p <- function(i) 8*i
a <- function(i) 1+4*i*(i-1)

library(ggplot2)
library(reshape2)

i <- 1:(8*365/7)
d <- data.frame(i=i,p=p(i),a=sapply(i,a))
d <- melt(d, id.vars='i')
p <- ggplot(d, aes(i, value, linetype=variable)) +
    geom_hline(yintercept=700^2) +
    geom_line() +
    scale_linetype_manual(values=c(2,1)) +
    #geom_point() +
    scale_x_continuous(breaks=(0:20)*365/7, labels=0:20) +
    #scale_y_continuous(breaks=c(0,700^2), labels=c(0,expression(L^2)))
    scale_y_sqrt() +
    #scale_y_log10() +
    annotate('text', 8*365/7, 1e3, label="P(i)=8i", hjust=1, size=3) +
    annotate('text', 8*365/7, 2.5e5, label="A(i)=1+4i(i-1)", hjust=1, size=3)
print(p + theme_classic())
Run Code Online (Sandbox Code Playgroud)

产量

我知道我可以使用fontface = 3并将所有内容都放在斜体中.但我不希望数字用斜体,只有变量i.优选地,P并且A被以斜体为好.

有任何想法吗?

r ggplot2

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

TensorFlow或Theano:他们如何知道基于神经网络图的损失函数导数?

在TensorFlow或Theano中,您只需告诉库您的神经网络是如何运行的,以及前馈应该如何运作.

例如,在TensorFlow中,您会写:

with graph.as_default():
    _X = tf.constant(X)
    _y = tf.constant(y)

    hidden = 20
    w0 = tf.Variable(tf.truncated_normal([X.shape[1], hidden]))
    b0 = tf.Variable(tf.truncated_normal([hidden]))

    h = tf.nn.softmax(tf.matmul(_X, w0) + b0)

    w1 = tf.Variable(tf.truncated_normal([hidden, 1]))
    b1 = tf.Variable(tf.truncated_normal([1]))

    yp = tf.nn.softmax(tf.matmul(h, w1) + b1)

    loss = tf.reduce_mean(0.5*tf.square(yp - _y))
    optimizer = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
Run Code Online (Sandbox Code Playgroud)

我使用L2范数损失函数,C = 0.5*sum((y-yp)^ 2),并且在反向传播步骤中可能必须计算导数,dC = sum(y-yp).见本书(30).

我的问题是:TensorFlow(或Theano)如何知道反向传播的分析导数?或者他们做了近似?或者不知何故不使用衍生物?

我已经在TensorFlow上完成了深度学习的udacity课程,但我仍然对如何理解这些库的工作方式存在分歧.

neural-network theano tensorflow

8
推荐指数
1
解决办法
2818
查看次数

JavaFX:设置Tab助记符

快速提问:是否可以为JavaFX Tab设置助记符?

我似乎只能为按钮和菜单项之类的控件设置它们。

tabs javafx

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

Tikz:两条边路径

我可以使用 \path 绘制一条穿过 2 条边的线吗?

考虑:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}

\tikzstyle{status} = [rectangle, draw=black, text centered, anchor=north, text=black, minimum width=2em, minimum height=2em, node distance=6ex and 7em, font=\bfseries]
\tikzstyle{line} = [draw,thick,-latex]
\tikzstyle{transition} = [font=\small]

\begin{document}
    \begin{tikzpicture}
    \node [status, fill=green] (T) {H};
    \node [status, fill=red, right=4em of T] (A) {A};
    \node [status, fill=gray, right=4em of A] (D) {D};

    \path [line] (T) -- (A) node[transition,pos=0.5,above,align=left] {$\#A \geq 1$};
    \path [line] (A) -- (D) node[transition,pos=0.5,above,align=left] {wait $\tau$ tick\\$\tau\sim\mathcal{G}(\lambda)$};
    %\path [line] (D) -| (T) node[transition,pos=0.83,left] {$p_{repl}$}; …
Run Code Online (Sandbox Code Playgroud)

latex tikz

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

使用tf.merge_all_summaries()时TensorFlow:PlaceHolder错误

我收到占位符错误.

我不知道它意味着什么,因为我正确映射sess.run(..., {_y: y, _X: X})...我在这里提供了一个功能齐全的MWE重现错误:

import tensorflow as tf
import numpy as np

def init_weights(shape):
    return tf.Variable(tf.random_normal(shape, stddev=0.01))

class NeuralNet:
    def __init__(self, hidden):
        self.hidden = hidden

    def __del__(self):
        self.sess.close()

    def fit(self, X, y):
        _X = tf.placeholder('float', [None, None])
        _y = tf.placeholder('float', [None, 1])

        w0 = init_weights([X.shape[1], self.hidden])
        b0 = tf.Variable(tf.zeros([self.hidden]))
        w1 = init_weights([self.hidden, 1])
        b1 = tf.Variable(tf.zeros([1]))

        self.sess = tf.Session()
        self.sess.run(tf.initialize_all_variables())

        h = tf.nn.sigmoid(tf.matmul(_X, w0) + b0)
        self.yp = tf.nn.sigmoid(tf.matmul(h, w1) + b1)

        C = tf.reduce_mean(tf.square(self.yp - …
Run Code Online (Sandbox Code Playgroud)

python neural-network tensorflow

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