- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我最近下载了 Deeplearning for Java (DL4J),现在正在尝试使用卷积网络。我在主页和互联网上找到了一些工作示例,例如如何对图像进行分类,即识别人脸。我大致了解如何读取训练数据以及如何使用网络应识别的正确标签来标记图像(“Barack Obama - 图片 1”)。然而,从这里开始我有点卡住了。我无法理解输出的意义。就像 http://deeplearning4j.org/image-data-pipeline 上描述的那样我们使用 ImageRecordReader 读取图像并从中创建训练数据。但是,程序如何知道将一张图像分类为“巴拉克奥巴马”而不是“巴拉克奥巴马 - 样本图片 1”呢?或者网络也有这样的功能吗?我不这么认为。我的下一个问题是更改应用程序,使其不仅识别对象,还评估图像,有点像 AlphaGo 评估以图像表示的棋盘位置。那我该如何输入数据呢?例如,我可以用他们的分数来标记培训委员会状态……但我不知道这是否好。我希望这是可以理解的,我们将不胜感激帮助和最少的样本!
谢谢,祝你有美好的一天奥利弗
最佳答案
您引用的示例使用Labeled Faces in the Wild数据集,该数据集具有以下文件夹结构:
lfw
├── Aaron_Eckhart
├── Aaron_Guiel
├── Aaron_Patterson
│ ├── Aaron_Patterson_0001.jpg
ImageRecordReader
类扩展了抽象 BaseImageRecordReader
类,该类在其 initialize()
方法中使用以下行 (131-134) 来创建标签数组:
File parentDir = imgFile.getParentFile();
String name = parentDir.getName();
if(!labels.contains(name))
labels.add(name);
换句话说,它不使用 JPEG 文件的名称,而是使用其父文件夹的名称。
至于你的第二个问题:
My next problem then is to change the application to not merely recognize an object but to evaulate an image, kind of like in AlphaGo evaluating a board position represented as an image. [..] I could label for example training board states with their score ... but I do not know if that is good at all.
我建议从阅读以下论文开始: http://www.nature.com/nature/journal/v529/n7587/fig_tab/nature16961_F1.html ,以及以下大纲:https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ (特别是从 AlphaGo 部分开始)。
AlphaGo relies on two different components: A tree search procedure, and convolutional networks that guide the tree search procedure. [..] In total, three convolutional networks are trained, of two different kinds: two policy networks and one value network. Both types of networks take as input the current game state, represented as an image.
[..]
The value network provides an estimate of the value of the current state of the game: what is the probability of the black player to ultimately win the game, given the current state? The input to the value network is the whole game board, and the output is a single number, representing the probability of a win.
The policy networks provide guidance regarding which action to choose, given the current state of the game. The output is a probability value for each possible legal move (i.e. the output of the network is as large as the board). Actions (moves) with higher probability values correspond to actions that have a higher chance of leading to a win.
关于java - 使用 DL4J 评估图像,类似于 AlphaGo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37318692/
在C语言中,当有变量(假设都是int)i小于j时,我们可以用等式 i^=j^=i^=j 交换两个变量的值。例如,令int i = 3,j = 5;在计算 i^=j^=i^=j 之后,我有 i = 5,
我为以下问题编写了以下代码: 给定一个由 N 个正整数组成的序列 A,编写一个程序来查找满足 i > A[j]A[i](A[i] 的 A[j] 次方 > A[j] 的 A[i] 次方)。 我的代码通过
这个表达式是从左到右解析的吗?我试图解释解析的结果,但最后的结果是错误的。 int j=10, k=10; j+=j-=j*=j; //j=j+(j-=j*=j)=j+(j-j*j) k+=k*=
给定一个整数数组 A ,我试图找出在给定位置 j ,A[j] 从每个 i=0 到 i=j 在 A 中出现了多少次。我设计了一个如下所示的解决方案 map CF[400005]; for(int i=0
你能帮我算法吗: 给定 2 个相同大小的数组 a[]和 b[]具有大于或等于 1 的整数。 查找不相等的索引 i和 j ( i != j ) 使得值 -max(a[i]*b[i] + a[i] * b
每次用J的M.副词,性能显着下降。因为我怀疑艾弗森和许比我聪明得多,我一定是做错了什么。 考虑 Collatz conjecture .这里似乎有各种各样的内存机会,但不管我放在哪里M. ,性能太差了
假设一个包含各种类型的盒装矩阵: matrix =: ('abc';'defgh';23),:('foo';'bar';45) matrix +---+-----+--+|abc|defgh|23|+
是否有可能对于两个正整数 i 和 j,(-i)/j 不等于 -(i/j)?我不知道这是否可能......我认为这将是关于位的东西,或者 char 类型的溢出或其他东西,但我找不到它。有什么想法吗? 最
假设两个不同大小的数组: N0 =: i. 50 N1 =: i. 500 应该有一种方法可以获得唯一的对,只需将两者结合起来即可。我发现的“最简单”是: ]$R =: |:,"2 |: (,.N0)
我是 J 的新用户,我只是想知道 J 包中是否实现了三次样条插值方法? 最佳答案 我自己不熟悉,但是我确实安装了所有的包,所以 $ rg -l -i spline /usr/share/j/9.02
在 Q/kdb 中,您可以使用 ': 轻松修改动词,它代表每个优先级。它会将动词应用于一个元素及其之前的邻居。例如 =': 检查值对是否相等。在 J 中,您可以轻松折叠 /\ 但它是累积的,是否有成对
嗨,我有一个 4x4 双矩阵 A 1+2i 2-1i -3-2i -1+4i 3-1i -3+2i 1-3i -1-3i 4+3i 3+5i 1-2i -1-4i
刚刚发现 J 语言,我输入: 1+^o.*0j1 I expected the answer to be 0 ,但我得到了 0j1.22465e_16。虽然这非常接近于 0,但我想知道为什么 J 应该
这个问题在这里已经有了答案: With arrays, why is it the case that a[5] == 5[a]? (20 个答案) 关闭 3 年前。 我正在阅读“C++ 编程语言”
当第一行是 1, 1/2 , 1/3 ....这是支持该问题的图像。 是否存在比朴素的 O(n^2) 方法更有效的方法? 我在研究伯努利数时遇到了这个问题,然后在研究“Akiyama-Tanigawa
我写了一段Java代码,它在无限循环中运行。 下面是代码: public class TestProgram { public static void main(String[] args){
for (int i = n; i > 0; i /= 2) { for (int j = 0; j 0; i /= 2) 的第一个循环结果 O(log N) . 第二个循环for (int
如问题中所述,需要找到数组中 (i,j) 对的总数,使得 (1) **ia[j]** 其中 i 和 j 是数组的索引。没有空间限制。 我的问题是 1) Is there any approach w
for l in range(1,len(S)-1): for i in range(1,len(S)-l): j=i+l for X in N:
第二个for循环的复杂度是多少?会是n-i吗?根据我的理解,第一个 for 循环将执行 n 次,但第二个 for 循环中的索引设置为 i。 //where n is the number elemen
我是一名优秀的程序员,十分优秀!