我按照给定的mnist教程,能够训练模型并评估其准确性.但是,教程没有说明如何在给定模型的情况下进行预测.我对准确性不感兴趣,我只想使用模型来预测一个新的例子,并在输出中查看所有结果(标签),每个结果都有指定的分数(已分类或未分类).
public static int rank(int key, int[] a) {
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
// Key is in a[lo..hi] or not present.
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) hi = mid - 1;
else if (key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
上面的静态方法进行二分查找.它是线程安全的吗?我知道局部变量是线程安全的,但"a"这里是一个数组,所以这意味着它是Java中的一个对象,对吧?那是问题吗?刚刚读取数组,没有以任何方式进行修改,所以我假设这个方法是线程安全的.但我想确保理解为什么.
谢谢!
我不确定这是机器学习问题的正确交换网站,但我之前确实看过ML问题所以我正在尝试运气(也发布在http://math.stackexchange.com).
我有来自不同来源的培训实例,因此构建一个模型效果不佳.在这种情况下是否有已知的方法?
示例解释最佳.假设我想根据不同人群构建的训练数据对癌症/非癌症进行分类.一个群体的训练实例可能与其他群体的正面/负面例子分布完全不同.现在,我可以为每个人口建立一个单独的模型,但问题是,对于测试,我不知道测试实例来自哪个群体.
*所有培训/测试实例都具有完全相同的功能集,无论它们来自何种人群.
我有一个python客户端需要与我管理的远程服务器通信.他们使用zeromq进行通信.当我在本地测试客户端/服务器时,一切正常.但现在我在云上部署了客户端和服务器,每个客户端都使用不同的提供商.我的问题是,建立连接的最简单方法是什么(安全)?我假设我无法通过密码,即使我可以猜测有更安全的替代方案.
我知道如何使用ssh-keygen设置没有密码的ssh连接.那会有用吗?在发送tcp req之前,客户端是否需要与服务器建立ssh连接?如果有一个python库可以帮助解决这个问题,那将是一个很大的帮助.
谢谢!
更新:超过24小时过去了,没有人回复/回答.我想我已经越来越接近解决这个问题了,但还没有完全解决这个问题.我将客户端的密钥添加到服务器上的.ssh/authorized_key,现在我可以在没有密码的情况下从客户端ssh到服务器.接下来,我关注了"使用SSH隧道化PyZMQ连接" 这篇文章.这是我在客户端代码中的内容:
1 context = zmq.Context()
2 socket = context.socket(zmq.REQ)
3 socket.connect("tcp://localhost:5555")
4 ssh.tunnel_connection(socket, "tcp://locahost:5555", "myuser@remote-server-ip:5555")
5 socket.send_string(some_string)
6 reply = socket.recv()
Run Code Online (Sandbox Code Playgroud)
这不起作用.我真的不明白第3和第4行,我认为我在那里做错了.此外,我的服务器(托管在linode上)有一个"默认网关"IP和一个"公共IP" - 在隧道连接中我只指定了公共IP,这也是我用来ssh到机器的ip.
我正在考虑如何在程序中使用线程.现在我有一个单线程程序,读取一个巨大的文件.非常简单的程序,只是逐行读取并收集有关单词的一些统计信息.现在,我想使用多线程来加快速度.我不知道如何处理这个问题.
一种解决方案是预先将数据分成X个片段,然后有X个线程,每个线程同时在一个片段上运行,使用一个同步方法将统计信息写入内存.有更好的方法吗?具体来说,我想避免提前分离数据.
谢谢!
假设我需要为一系列书籍设计一个系统.我们假设我有数百万本书,为简单起见,我们不需要在系统中添加或删除书籍.
我可以创建一个Book类并以集合的大小启动一个数组:
Book book = new Book[number of books];
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Book将包括以下字段:
long bookIsbn
String bookTitle
Run Code Online (Sandbox Code Playgroud)
或者,只启动一个对象:
Book book = new Book();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Book类需要包含数组/列表/映射等,其中包含有关整个集合的信息.例如:
Map<Integer, String> isbnToTitle = new Map<Integer, String>();
Run Code Online (Sandbox Code Playgroud)
哪种表示更有效?或者可能重新解释这个被认为是更好的OOP方法的问题?
谢谢!
所以我有3节课.
Abstract class A
Class B extends class A
independent Class C
Run Code Online (Sandbox Code Playgroud)
在包含main方法的D类中,我创建了一个B类实例的列表
List<B> b = methodCall(); // the method returns a list of instances of class B
Run Code Online (Sandbox Code Playgroud)
现在在类CI中有一个方法对A和B都是通用的,因此我不想复制它.我想有一个方法,将A类的实例作为输入,如下所示:
public void someMethod(List<A> a)
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时:
C c = new C();
c.someMethod(b);
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,一些方法不适用于参数List<B>,而是期望获得List<A>.
有没有一种解决这个问题的好方法?非常感谢!
我有点困惑.我写了一个Java独立应用程序,现在我想使用GAE在网络上部署它,并在途中也学习GAE.在我的应用程序中,我从文件中读取数据,将其存储在内存中,处理它,然后将结果存储在内存或文件中.我知道现在我需要将结果存储在GAE的数据存储中,这很好.所以我可以在我的计算机上独立运行我的程序,然后将结果写入文件,然后使用GAE将所有结果上传到数据存储,然后用户可以查询它.但是,有没有办法可以将整个流程转移到GAE应用程序中?所以应用程序从文件读取数据,进行处理(使用应用程序服务器上的内存而不是我的计算机 - 需要至少4GB的RAM),然后当它完成时(可能需要1-2个小时),将所有内容写入GAE数据存储?(所以这是一个没有用户参与的内部"离线"过程).
我有点困惑,因为谷歌没有提到有关内存配额的任何内容.
谢谢!