小编Eva*_* Pu的帖子

如何查看Bazel版本?

我试图找出我的计算机上目前有哪个Bazel版本从源代码安装TensorFlow(它需要0.1.4版本)

evan@evan-box:~/Apps/tensorflow$ bazel --version
Unknown Bazel startup option: '--version'.
  For more info, run 'blaze help startup_options'.
evan@evan-box:~/Apps/tensorflow$ bazel version
Build label: head (@125b349)
Build target: bazel-out/local_linux-fastbuild/bin/src/main/java/bazel-main_deploy.jar
Build time: Fri Nov 13 01:23:30 2015 (1447377810)
Build timestamp: 1447377810
Build timestamp as int: 1447377810
Run Code Online (Sandbox Code Playgroud)

那么版本究竟在哪里?

bazel tensorflow

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

如何判断单行python在语法上是否有效?

它与此非常相似:

如何判断字符串是否包含有效的Python代码

唯一的区别在于,而不是完全给出整个程序,我一次只对一行代码感兴趣.

在形式上,如果存在任何使用该特定行的语法上有效的python程序,我们说python的一行是"语法上有效的".

例如,我想将这些标识为语法上有效的行:

for i in range(10):

x = 1
Run Code Online (Sandbox Code Playgroud)

因为可以在一些语法上有效的python程序中使用这些行.

我想将这些行标识为语法无效的行:

for j in range(10 in range(10(

x =++-+ 1+-
Run Code Online (Sandbox Code Playgroud)

因为没有语法上正确的python程序可以使用这些行

检查不需要太严格,只需要足够好来过滤掉明显的虚假陈述(如上所示).当然,该行以字符串形式给出.

python validation

16
推荐指数
1
解决办法
769
查看次数

amazon aws sns,sms选项不可用?

我正在尝试使用amazon AWS向手机发送短信.特别是,我正在使用SNS服务并陷入创建新订阅的过程中.

在在线教程中,他们看到了: 下拉菜单中提供短信

我怎么看这个? 下拉菜单中没有短信

对不起,我的截图在下拉菜单中无效,所以我用手机拍了一张贫民窟照片.

有任何想法吗?

sms amazon-web-services amazon-sns

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

张量恒定,大小可变

我有一个可变的批量大小,所以我的所有输入都是表格

tf.placeholder(tf.float32, shape=(None, ...)
Run Code Online (Sandbox Code Playgroud)

接受可变批量大小.但是,如何使用可变批量大小创建常量值?问题在于这一行:

log_probs = tf.constant(0.0, dtype=tf.float32, shape=[None, 1])
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误:

TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
Run Code Online (Sandbox Code Playgroud)

我确信可以用可变批量大小初始化一个恒定张量,我该怎么做?

我也尝试过以下方法:

tf.constant(0.0, dtype=tf.float32, shape=[-1, 1])
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError: Too many elements provided. Needed at most -1, but received 1
Run Code Online (Sandbox Code Playgroud)

tensorflow

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

tensorflow创建不同长度的掩模

我在tensorflow中有一个长度的张量,让我们说它看起来像这样:

[4, 3, 5, 2]
Run Code Online (Sandbox Code Playgroud)

我想创建一个1和0的掩码,其数量为1对应于此张量的条目,填充0到总长度8.即我想创建此张量:

[[1,1,1,1,0,0,0,0],
 [1,1,1,0,0,0,0,0],
 [1,1,1,1,1,0,0,0],
 [1,1,0,0,0,0,0,0]
]
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

arrays masking tensorflow

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

TensorFlow:从多个检查点恢复变量

我有以下情况:

  • 我有2个模型用2个独立的脚本编写:

  • A型是由变量a1,a2a3,并且被写入A.py

  • 模型B由变量b1,, b2和组成 b3,并用B.py编写

在每一个A.pyB.py我有一个tf.train.Saver来保存所有的局部变量的检查点,并让我们把检查点文件ckptAckptB分别.

我现在想要做的是使用C型a1b1.我可以a1通过使用var_scope(和相同的b1)在A和C中使用完全相同的变量名.

现在的问题是我怎么可能会加载a1,并b1ckptAckptB成C型?例如,以下工作会怎样?

saver.restore(session, ckptA_location)
saver.restore(session, ckptB_location)
Run Code Online (Sandbox Code Playgroud)

如果您尝试两次恢复同一个会话,是否会引发错误?难道抱怨说,有没有分配"槽"的额外变量(b2,b3,a2,a3),或者将它简单地恢复它可以变量,且仅当在C是未初始化一些其他变量抱怨吗?

我正在尝试编写一些代码来测试这个,但我很想看到这个问题的规范方法,因为在尝试重新使用一些预先训练的权重时经常会遇到这种情况.

谢谢!

tensorflow

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

当代码是字符串中的 exec() 时,如何以编程方式获取回溯的行号?

我有一个存储在字符串中的函数,它看起来像这样:

func_str = "def <func_name> ..."
Run Code Online (Sandbox Code Playgroud)

我正在使用“exec”评估它并在输入上使用它,如下所示:

exec func_str in locals()
locals()[func_name](inp)
Run Code Online (Sandbox Code Playgroud)

现在这个函数可能有一个异常,我想知道字符串中哪一行导致了它。在解释器中运行它会给出一条错误消息,这正是我想要的:

  File "<string>", line 6, in <func_name>
TypeError: can only concatenate tuple (not "int") to tuple
Run Code Online (Sandbox Code Playgroud)

这告诉我字符串中的第六行导致了问题。

有什么方法可以以编程方式捕获这个吗?我看过类似的解决方案,但它们没有解决来自在本地范围内执行的字符串的异常。当尝试使用回溯模块时,我只获得了调用 exec 的外部函数的行号。

谢谢

python traceback

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

如何在pytorch中手动应用渐变

开始学习 pytorch 并尝试做一些非常简单的事情,尝试将大小为 5 的随机初始化向量移动到值 [1,2,3,4,5] 的目标向量。

但我的距离并没有减少!!而我的矢量x只是发疯了。不知道我错过了什么。

import torch
import numpy as np
from torch.autograd import Variable

# regress a vector to the goal vector [1,2,3,4,5]

dtype = torch.cuda.FloatTensor # Uncomment this to run on GPU

x = Variable(torch.rand(5).type(dtype), requires_grad=True)
target = Variable(torch.FloatTensor([1,2,3,4,5]).type(dtype), 
requires_grad=False)
distance = torch.mean(torch.pow((x - target), 2))

for i in range(100):
  distance.backward(retain_graph=True)
  x_grad = x.grad
  x.data.sub_(x_grad.data * 0.01)
Run Code Online (Sandbox Code Playgroud)

mathematical-optimization pytorch autograd

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

Python排序具有"关键"功能不足

一方面,给定一个关键函数很容易看到,可以使用比较函数轻松实现一个使用相同功能的排序.减少如下:

def compare(x,y):
    return key(x) - key(y)
Run Code Online (Sandbox Code Playgroud)

另一方面,我们如何通过使用密钥限制元素图的各种排序来确定我们不会失去潜在的排序?例如,假设我想对长度为2元组(x,y)的列表进行排序,其中我坚持使用以下比较方法:

def compare(tup1,tup2):
    if (tup1[1] < tup2[0]):
       return -1
    if (tup1[0] % 2 == 0):
       return 1
    if (tup1[0] - tup2[1] < 4):
       return 0
    else:
       return 1
Run Code Online (Sandbox Code Playgroud)

现在告诉我如何将此比较转换为相应的"键"函数,以便我的排序算法以相同的方式进行?这不是一个人为的例子,因为这些自定义排序在搜索过程中出现在对称破坏算法中,并且非常重要.

python sorting key comparator

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

如何翻译/移动 numpy 数组?

我不确定要搜索什么关键字,因此如果已被询问,请链接响应并关闭此线程。

我试图按固定方向移动 numpy 数组的非零条目,例如,假设我有一个二维数组:

0 1 2 0
0 3 0 0
0 0 0 0
0 0 0 0
Run Code Online (Sandbox Code Playgroud)

将其移位 (1,1) 将产生以下数组:

0 0 0 0
0 0 1 2
0 0 3 0
0 0 0 0
Run Code Online (Sandbox Code Playgroud)

假设如果非零条目超出范围,它们就会被丢弃。我该怎么做?

编辑:显然有一些重复?在 numpy 数组中移动元素 我真的不明白为什么它们是同一个问题,因为有人谈论的是循环出界的东西,所以它更多的是一种“滚动”动作而不是移动。我也喜欢这里的解决方案,它非常简单且可读。

再次编辑:修复了一些格式

python arrays numpy

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

发生多个匹配时的java regex首选项

嗨,我想特别了解OR运算符"|" 在java正则表达式中工作.我刚开始使用它,大部分事情都不清楚.

假设我希望匹配分数和整数,也就是说1/2,12/25形式的东西,以及形式13,235等的东西.

我试过这两种模式:

pattern1 = Pattern.compile("\\d+|\\d+/\\d+"))
pattern2 = Pattern.compile("\\d+/\\d+|\\d+"))
Run Code Online (Sandbox Code Playgroud)

在英语中,pattern1表示"数字或数字/数字",而pattern2表示"数字/数字或数字".

现在考虑这个输入字符串:

inputStr = "blah... 231/232 blah... 4 blah... 2"
Run Code Online (Sandbox Code Playgroud)

对于pattern1,我发现了这些匹配:

[junit] found 231
[junit] found 232
[junit] found 4
[junit] found 2
Run Code Online (Sandbox Code Playgroud)

对于pattern2,我发现了这些匹配:

[junit] found 231/232
[junit] found 4
[junit] found 2
Run Code Online (Sandbox Code Playgroud)

现在,pattern1和pattern2之间的唯一区别是其匹配元素的顺序.当然,pattern2是我想要的,因为它似乎"更喜欢"一个真正的派系而不是把它们分开.

所以对我来说最重要的问题是:这种行为是可靠的/可预测的,还是对于不同的平台会有所不同?

但也只是好奇......这个问题也是如此:我也觉得它令人困惑,因为运算符"OR"应该与其参数对称,如加法.当1 + 2和2 + 1带有不同的语义时,你会想到人们会担心...这里有什么理由让pattern1和pattern2在语义上有所不同?

java regex

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

python 多变量多项式包

我需要表示多个变量的多项式,即

x^3 + xy^4 + xz^2w + uq^2we^3
Run Code Online (Sandbox Code Playgroud)

我查看了 scipy 包,它似乎只处理最多 3 个变量的多项式。我想用这些多项式执行的主要操作是

1)多项式的乘法

2) 针对多项式单个变量的积分(定积分)

3) 将多项式(固定变量和次数)曲线拟合到数据点

任何线索都会有帮助。如果在我实施之前有人已经做好了工作,那就太好了。

另外,作为旁注,我从未接触过张量,但我怀疑这些操作很自然地表达为某种张量?有没有好的张量库可供我使用并尝试找出如何将这些操作表示为张量?再说一遍,我根本没有接触过张量,但我绝对可以轻松学习它。

python math scipy polynomials

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

在没有自我的情况下重命名python中的类变量

不知道如何表达它,但这是交易。我有一个脚本,其中每个变量都是全局定义的,但后来我想将脚本转换为类以进行更好的封装。

但是,我在脚本中使用的所有变量都需要转换为对象变量。我会改变类似的东西

x = 5
Run Code Online (Sandbox Code Playgroud)

进入

self.x = 5
Run Code Online (Sandbox Code Playgroud)

做完之后,脚本中的所有函数都需要变成类的方法,然而,大多数方法都是数学公式,重构一些像这样干净的东西

z = x ** y + x
Run Code Online (Sandbox Code Playgroud)

进入

z = self.x ** self.y + self.x
Run Code Online (Sandbox Code Playgroud)

真的很伤可读性。

因此,作为对此的解决方案,我一直在方法的开头输入这些非常尴尬的重命名:

def method(self, ...):
  x = self.x
  y = self.y
  ...
Run Code Online (Sandbox Code Playgroud)

它使公式可读,但输入所有重命名真的很痛苦,有没有更优雅的方法来做到这一点?

python refactoring

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