小编pyt*_*hor的帖子

使用布尔张量进行Tensorflow索引

在numpy中,有两个相同形状的数组,x并且y可以像这样做切片y[x > 1].你如何在张量流中获得相同的结果?y[tf.greater(x, 1)]不起作用,tf.slice也不支持这样的事情.有没有办法立即用布尔张量索引或者当前是不支持的?

python indexing tensorflow

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

stl的multimap如何插入尊重排序?

我有一些带有整数索引的数据.我不断生成需要添加到我拥有的数据集合中的新数据,按索引排序,同时我希望能够轻松地开始数据并迭代它.这听起来像std :: multimap正是我需要的.

但是,我还需要按照插入顺序保存具有相同索引的数据,在这种情况下,这意味着当我遍历数据时,我会在之后的数据之前得到早期数据.

multimap会这样做吗?

我没有找到任何保证,这是这种情况.在sgi手册中,我没有看到是否提及.我在gcc 4.3.4实现上尝试了它,对于一些有限的测试用例似乎是正确的,但当然我想知道标准是否要求这个并且我可以依赖这个事实.

编辑:为了更清楚地回答一些答案,我希望数据首先按(非唯一)索引排序,然后按插入时间排序.我原本希望第二部分可以免费使用multimap,但似乎没有.

c++ multimap

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

为什么在增加批量大小时TensorFlow示例会失败?

我正在为初学者查看Tensorflow MNIST示例,并发现在此部分中:

for i in range(1000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
Run Code Online (Sandbox Code Playgroud)

将批量大小从100更改为高于204会导致模型无法收敛.它可以达到204,但是在205和我试过的任何更高的数字,精度最终将<10%.这是一个错误,关于算法的东西,还有什么?

这是运行OS X的二进制安装,似乎是0.5.0版本.

python tensorflow

15
推荐指数
3
解决办法
8106
查看次数

静态局部变量可以减少内存分配时间吗?

假设我在单线程程序中有一个函数,看起来像这样

void f(some arguments){
    char buffer[32];
    some operations on buffer;
}
Run Code Online (Sandbox Code Playgroud)

并且f出现在一些经常调用的循环中,所以我想尽可能快地调用它.在我看来,每次调用f时都需要分配缓冲区,但如果我声明它是静态的,那么就不会发生这种情况.这是正确的推理吗?那是免费的加速吗?只是因为这个事实(它很容易加速),优化编译器是否已经为我做了类似的事情?

c++ static local-variables

14
推荐指数
3
解决办法
4077
查看次数

谷歌协议缓存巨大的python

我开始使用协议缓冲库,但注意到它使用了大量内存.pympler.asizeof显示我的一个对象大约是76k!基本上,它包含一些字符串,一些数字和一些枚举,以及一​​些相同的可选列表.如果我写了同样的事情,作为C-结构,我希望它是在几百字节,乃至ByteSize方法返回121(序列化的字符串的大小).

这是你对图书馆的期望吗?我听说它很慢,但这是无法使用的,让我更倾向于相信我在滥用它.

编辑

这是我构建的一个例子.这是一个类似的pb文件,但比我一直使用的更简单

    package pb;

message A {
    required double a       = 1;
}

message B {
    required double b       = 1;
}

message C {
    required double c       = 1;
    optional string s       = 2;
}

message D {
    required string d       = 1;
    optional string e       = 2;
    required A a            = 3;
    optional B b            = 4;
    repeated C c            = 5;
}
Run Code Online (Sandbox Code Playgroud)

在这里我正在使用它

>>> import pb_pb2
>>> a = pb_pb2.D()
>>> a.d = "a"
>>> …
Run Code Online (Sandbox Code Playgroud)

python protocol-buffers

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

了解虚拟基类和构造函数调用

我对虚拟基类的工作原理有点困惑.特别是,我想知道如何调用基类的构造函数.我写了一个例子来理解它:

#include <cstdio>
#include <string>
using std::string;

struct A{
    string s;
    A() {}
    A(string t): s(t) {}
};

struct B: virtual public A{
    B(): A("B"){}
};

struct C: virtual public A {};

struct D: public B, public C {};

struct E: public C, public B {};

struct F: public B {};

int main(){
    D d;
    printf("\"%s\"\n",d.s.c_str());
    E e;
    printf("\"%s\"\n",e.s.c_str());
    F f;
    printf("\"%s\"\n",f.s.c_str());
    B b;
    printf("\"%s\"\n",b.s.c_str());
}
Run Code Online (Sandbox Code Playgroud)

哪个输出

""
""
""
"B"
Run Code Online (Sandbox Code Playgroud)

我不确定前两种情况会发生什么,但对于第三种情况,我至少期待输出为"B".所以现在我只是感到困惑.理解A的构造函数如何被调用的规则是什么?

c++ virtual multiple-inheritance base-class

13
推荐指数
2
解决办法
7547
查看次数

从gdb中的void*打印字符

我有一个空白*我认为附近有一个字符串,在接下来的几个字节内,但我不知道在哪里.我不知道有什么其他知识在附近的内存,包括是否有0,所以铸造到char*不是我想要的.如何将此指针中的下20个字节作为字符打印?

gdb

11
推荐指数
1
解决办法
9035
查看次数

在bash中从键盘发送SIGINT到管道命令

如果在bash中我a | b | c | d在命令行上运行然后按^C,哪个进程获取信号?

linux bash signals

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

习惯于解压缩最大大小n的可变长度列表的方法

我正在读取文件并解压缩每行如下:

for line in filter(fh):
  a, b, c, d = line.split()
Run Code Online (Sandbox Code Playgroud)

但是,行可能比我想要解压缩的变量具有更多或更少的列.在少数情况下,我想分配None悬空变量,在有更多变量的情况下,我想忽略它们.这样做的惯用方法是什么?我正在使用python 2.7.

python iterable-unpacking

10
推荐指数
3
解决办法
1026
查看次数

gdb可以打破隐式类方法吗?

编译器生成一些类方法,如复制构造函数,析构函数等.是否有可能让gdb中断这些方法,例如,观察对象被复制或销毁的位置?

c++ debugging gdb destructor copy-constructor

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