小编Emm*_*ell的帖子

Travis CI忽略了MAVEN_OPTS?

我的Scala项目(Maven管理的)未能在Travis上构建,GC overhead limit exceeded尽管在本地编译时仍然存在错误,但仍会出现错误MAVEN_OPTS=-Xmx3g -XX:MaxPermSize=512m.我怀疑Travis在某种程度上忽略了我MAVEN_OPTS:当我尝试测试Oracle JDK 8时,Travis记录:

$ Setting environment variables from .travis.yml
$ export MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx3g"
Run Code Online (Sandbox Code Playgroud)

看起来不错.但是,它记录后不久:

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=192m; support was removed in 8.0
Run Code Online (Sandbox Code Playgroud)

这是令人不安的,因为我-XX:MaxPermSize=192m只是在指定NOWHERE 512m.(这让我相信我-Xmx3g也被忽略了,导致编译失败.)

我尝试MAVEN_OPTS在我的pom中指定许多其他地方,但无济于事.例如,对于maven-scala-plugin,我有:

<configuration>
  ...
  <jvmArgs>
    <jvmArg>-Xmx3g</jvmArg>
    <jvmArg>-XX:MaxPermSize=512m</jvmArg>
  </jvmArgs>
</configuration>
Run Code Online (Sandbox Code Playgroud)

而且我在maven-surefire-plugin和scalatest插件下也有以下内容,尽管编译过程中构建失败而不是测试:

<configuration>
  <argLine>-Xmx3g -XX:MaxPermSize=512m</argLine>
</configuration>
Run Code Online (Sandbox Code Playgroud)

以下是我的.travis.yml的全部内容:

language: java
env:
  global:
    - MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx3g"
script: mvn clean install
jdk:
    - oraclejdk8
    - oraclejdk7
Run Code Online (Sandbox Code Playgroud)

我正在使用Scala 2.11.2和scala-maven-plugin 3.2.0.

scala maven travis-ci scala-maven-plugin

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

如何在TensorFlow分析器中获取详细的内存故障?

我正在使用新的TensorFlow探查器探查我的神经网络中的内存使用情况,该神经网络正在具有12GB RAM的Titan X GPU上运行。这是我配置主训练循环时的一些示例输出:

==================Model Analysis Report======================
node name | requested bytes | ...
Conv2DBackpropInput        10227.69MB (100.00%, 35.34%),     ...
Conv2D                       9679.95MB (64.66%, 33.45%),     ...
Conv2DBackpropFilter         8073.89MB (31.21%, 27.90%),     ...
Run Code Online (Sandbox Code Playgroud)

显然,这总计超过12GB,因此其中一些矩阵必须位于主内存中,而其他矩阵必须位于GPU上。我希望看到给定步骤中哪些变量的详细分类。是否有可能通过探查器或其他方式获得有关各种参数存储位置(主内存或GPU内存)的更详细的信息?

profiler profiling memory-management tensorflow

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

numpy np.where扫描数组一次以获取对应于T / F条件的两组索引

我有一个数组,我需要获取满足条件为真和相同条件为假的索引,例如:

x = np.random.rand(100000000)
true_inds = np.where(x < 0.5)
false_inds = np.where(x >= 0.5)
Run Code Online (Sandbox Code Playgroud)

在我的用例x中,该代码很大,在一个循环内被调用,而性能分析表明这np.where实际上是瓶颈。我目前正在执行类似于以上代码的操作,该代码不必要地扫描x两次以获得两组索引。是否有可能同时获得true_inds,并false_inds只用一个扫描x没有实施专门的替代np.where从头开始?

python performance numpy

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