我正在使用TensorFlow,我修改了教程示例以获取我的RGB图像.
该算法在新图像集上完美无缺地工作,直到突然(仍然会聚,通常精度约为92%),它与ReluGrad接收到的非有限值的错误一起崩溃.调试显示数字没有异常发生,直到非常突然,由于未知原因,错误被抛出.添加
print "max W vales: %g %g %g %g"%(tf.reduce_max(tf.abs(W_conv1)).eval(),tf.reduce_max(tf.abs(W_conv2)).eval(),tf.reduce_max(tf.abs(W_fc1)).eval(),tf.reduce_max(tf.abs(W_fc2)).eval())
print "max b vales: %g %g %g %g"%(tf.reduce_max(tf.abs(b_conv1)).eval(),tf.reduce_max(tf.abs(b_conv2)).eval(),tf.reduce_max(tf.abs(b_fc1)).eval(),tf.reduce_max(tf.abs(b_fc2)).eval())
Run Code Online (Sandbox Code Playgroud)
作为每个循环的调试代码,产生以下输出:
Step 8600
max W vales: 0.759422 0.295087 0.344725 0.583884
max b vales: 0.110509 0.111748 0.115327 0.124324
Step 8601
max W vales: 0.75947 0.295084 0.344723 0.583893
max b vales: 0.110516 0.111753 0.115322 0.124332
Step 8602
max W vales: 0.759521 0.295101 0.34472 0.5839
max b vales: 0.110521 0.111747 0.115312 0.124365
Step 8603
max W vales: -3.40282e+38 -3.40282e+38 -3.40282e+38 -3.40282e+38
max b …
Run Code Online (Sandbox Code Playgroud) 我刚开始使用iText(5.4.2,最新版本),有两件事我还没有完成.
我有下面的代码.
Document d = new Document(PageSize.A4_LANDSCAPE,0,0,0,0);
PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream("C:/test.pdf"));
document.open();
document.newPage();
Image img = Image.getInstance(String.format("C:/file.png"));
img.scaleToFit(400,240);
document.left(100f);
document.top(150f);
document.add(img);
document.close();
Run Code Online (Sandbox Code Playgroud)
但页面以纵向(非横向)渲染,图像放在左上角(根据要求不是10和15个单位).我究竟做错了什么?
会发生什么Java的内部ArrayList<T>
(也可能是许多其他类)是有一个内部Object[] array = new Object[n];
,哪个T
对象被写入.每当从中读取元素时,return (T) array[i];
都会进行强制转换.所以,每次阅读时都要施展.
我想知道为什么这样做.对我来说,似乎他们只是做了不必要的演员表.是不是更合乎逻辑,也更快一点,只是创建一个T[] array = (T[]) new Object[n];
然后只是return array[i];
没有演员表?这只是每个数组创建一个强制转换,通常远远小于读取次数.
为什么他们的方法是首选的?我不明白为什么我的想法不是更严格?
我甚至无法运行非常基本的socket.io示例.例如,他们网站的欢迎页面上的第一个示例:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud)
在服务器端和
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
Run Code Online (Sandbox Code Playgroud)
在客户端.如果我将服务器端保存在host.js
文件中,将客户端保存在client.htm
文件中,然后运行npm host.js
,我就会得到
info - socket.io started
warn - error raised: Error: listen EADDRINUSE
Run Code Online (Sandbox Code Playgroud)
这已经不是真正的预期了.然后,对于client.htm
(或者至少我认为我应该用它做什么 - 将它粘贴在client.htm文件中),我只得到一个空白屏幕.不是很令人惊讶,因为它首先包含一个不存在的文件/socket.io/socket.io.js
,但即使将其更改为host.js
(我认为应该是这样)也不会改变我只得到一个空白屏幕的事实......
我很无能为力.
我正在使用512GB RAM(由几个AMD Opteron 6212 CPU寻址)的单台机器上工作.目前大约有300GB RAM免费.通过运行运行大型Java计算
java path/to/myApp -Xms280g -Xmx280g > output.txt
Run Code Online (Sandbox Code Playgroud)
应该使Java立即保留280GB,如果失败则会出错.奇怪的是,没有发生错误,但top
只显示30.4GB的内存使用量,但它不会崩溃.怎么会发生这种情况?如果无法分配初始堆大小,是不是java应该崩溃?
实际上,一旦30.4GB已满,我就会在达到280GB之前获得OutOfMemory/Java堆空间/ GC开销限制错误.使用250GB或300GB运行会产生类似的30.3GB~30.4GB限制.我在Gentoo Linux上运行带有OpenJDK运行时环境(IcedTea6)的OpenJDK 64位服务器VM,并且有足够的可用RAM(超过300GB).
我正在运行下面的OpenCL内核,其二维全局工作大小为1000000 x 100,本地工作大小为1 x 100.
__kernel void myKernel(
const int length,
const int height,
and a bunch of other parameters) {
//declare some local arrays to be shared by all 100 work item in this group
__local float LP [length];
__local float LT [height];
__local int bitErrors = 0;
__local bool failed = false;
//here come my actual computations which utilize the space in LP and LT
}
Run Code Online (Sandbox Code Playgroud)
然而,这种拒绝编译,因为参数length
和height
在编译时不知道.但我根本不清楚如何正确地做到这一点.我应该使用memalloc指针吗?如何以一种只为整个工作组分配一次内存而不是每个工作项分配一次的方式来处理这个问题?
我需要的只是2个浮点数组,1个int和1个布尔值,它们在整个工作组之间共享(所以所有100个工作项).但我没有找到任何正确做到这一点的方法......
我正在使用一个大型的ArrayList<HashMap<A,B>>
,我会反复需要从随机的HashMap中选择一个随机密钥(并用它做一些事情).选择随机HashMap是微不足道的,但我该如何从这个HashMap中选择一个随机密钥?
速度很重要(因为我需要这样做10000次并且哈希映射很大),所以只需在[0,9999]中选择一个随机数k,然后.next()
在迭代器上执行k次,实际上不是一个选项.类似地,在每个随机选择上将HashMap转换为数组或ArrayList实际上不是一个选项.请在回复之前阅读此内容.
从技术上讲,我认为这应该是可能的,因为HashMap将其键存储在Entry[]
内部,并且从数组中随机选择很容易,但我无法弄清楚如何访问它Entry[]
.因此,任何访问内部的想法Entry[]
都非常受欢迎.其他解决方案(只要它们不占用散列图大小的线性时间)也是受欢迎的.
注意:启发式方法很好,所以如果有一种方法可以排除1%的元素(例如,由于多个填充的桶),那就没有问题了.
我正在通过Anaconda使用python,并希望在scikit中使用新功能(http://scikit-learn.org/dev/modules/neural_networks_supervised.html) - 目前仅在开发版本0.18.dev0中可用.
但是,做经典conda update
似乎不起作用,因为conda没有列出任何开发包.将开发版本安装到我的Anaconda中最简单的方法是什么?(对于它的价值,我使用的是64位窗口.)
是否有任何好的参考,或者有人可以告诉我更多关于小集合上各种Java集合实现的性能(比如说1-100个元素)?O(1)vs O(log n)故事几乎与这些大小无关,但由于我需要处理数百万这些小集,因此性能确实很重要.我发现的大多数参考文献都没有提到太多.
我需要对这些集合执行以下操作(通常每组只有几次):
hashCode()
整个集合我认为这些是比较可行的选项(假设比较/散列T几乎是免费的):
hashCode()
)Collections.sort()
需要的那样......以上哪一项通常是首选的?或者我应该写自己的SmallSet<T>
课程?
以下为什么不编译?编译器为+
打印行中的符号提供错误.
public class Test<T> {
HashMap<Integer,Integer> m = new HashMap<Integer, Integer>();
public static void main(String[] args) {
Integer zero1 = 0;
Integer zero2 = 0;
Test t = new Test();
t.m.put(1,zero1);
t.m.put(2,zero2);
System.out.println(t.m.get(1)+t.m.get(2)==t.m.get(2));
}
}
Run Code Online (Sandbox Code Playgroud)
我理解类型擦除,但m是a HashMap<Integer,Integer>
,它根本不应该取决于类型<T>
.为什么编译器会拒绝这个?删除<T>
第一行允许编译,但我不明白为什么这不应该工作.
这是一个编译器错误还是这种行为背后有任何逻辑?