您引用的示例使用Wild 数据集中的 Labeled Faces,它具有以下文件夹结构:
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 文件的名称,而是使用其父文件夹的名称。
至于你的第二个问题:
然后我的下一个问题是更改应用程序,使其不仅识别对象而且评估图像,有点像 AlphaGo 评估表示为图像的棋盘位置。[..] 例如,我可以用他们的分数标记培训委员会状态......但我不知道这是否很好。
我建议从阅读以下论文开始:
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 依赖于两个不同的组件:树搜索过程和指导树搜索过程的卷积网络。[..] 总共训练了三个卷积网络,分为两种:两个策略网络和一个价值网络。两种类型的网络都将当前游戏状态作为输入,表示为图像。
[..]
价值网络提供了对游戏当前状态价值的估计:给定当前状态,黑人玩家最终赢得游戏的概率是多少?价值网络的输入是整个棋盘,输出是单个数字,代表获胜的概率。
考虑到游戏的当前状态,政策网络提供关于选择哪种行动的指导。输出是每个可能的合法移动的概率值(即网络的输出与棋盘一样大)。具有较高概率值的动作(动作)对应于具有较高获胜机会的动作。