架构:
训练输入:固定尺寸224x224的RGB图像。
预处理:每个像素减去训练集上的RGB均值。
卷积核:一系列3X3卷积核堆叠,步长为1,采用padding保持卷积后图像空间分辨率不变。
空间池化:紧随卷积堆的最大池化,为2x2滑动窗口,步长2.
全连接层:特征提取后,接三个全连接层,前两个为4096,第三个为1000通道,最后是一个softmax层,输出概率。
所有隐藏层都用非线性修正relu。
Input Layer:224*224*3图像
Conv1 Layer:包含64个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:224*224*64
Conv2 Layer:包含64个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:224*224*64
Pool1 Layer:包含128个卷积核,kernal size:2*2,stride:2,padding:0
卷积后大小:112*112*128
Conv3 Layer:包含128个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:112*112*128
Conv4 Layer:包含128个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:112*112*128
Pool2 Layer:包含256个卷积核,kernal size:2*2,stride:2,padding:0
卷积后大小:56*56*256
Conv5 Layer:包含256个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:56*56*256
Conv6 Layer:包含256个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:56*56*256
Conv7 Layer:包含256个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:56*56*256
Pool3 Layer:包含512个卷积核,kernal size:2*2,stride:2,padding:0
卷积后大小:28*28*512
Conv8 Layer:包含512个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:28*28*512
Conv9 Layer:包含512个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:28*28*512
Conv10 Layer:包含512个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:28*28*512
Pool4 Layer:包含512个卷积核,kernal size:2*2,stride:2,padding:0
卷积后大小:14*14*128
Conv11 Layer:包含512个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:14*14*512
Conv12 Layer:包含512个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:14*14*512
Conv13 Layer:包含512个卷积核,kernal size:3*3,stride:1,padding:2
卷积后大小:14*14*512
Pool5 Layer:包含512个卷积核,kernal size:2*2,stride:2,padding:0
卷积后大小:7*7*512
FullConect Layer1:这里用1*1卷积核,包含4096个卷积核,
FullConect Layer2:这里用1*1卷积核,包含4096个卷积核,
FullConect Layer3:这里用1*1卷积核,包含4096个卷积核,
Softmax
由于池化只是下采样,没有权重,一般默认不计算层数
13层卷积+3层全连接 共16层(激活函数均为ReLU)
表1中每一列代表不同的网络,只有深度不同(层数计算不包含池化层)。卷积的通道数量很小,第一层仅64通道,美经过一次最大池化,通道数翻倍,直到数量达到512通道。
表2展示了每一种模型的参数数量,尽管网络加深,但权重未大幅增加,因为参数量主要集中在全连接层。
讨论:
两个3X3卷积核相当于5X5卷积核的感受域,三个3X3卷积核相当于一个7X7卷积核的感受域。
优点:三个卷积堆叠具有三个非线性修正层,使模型更具有判别性;其次三个3X3卷积参数量更少,相当于在7X7卷积核加入了正则化。
分类框架:
训练:
训练方法基本与AlexNet一致,除了多尺度训练图像采样方法不一致。
训练采用mini-batch梯度下降法,batch size=256;
采用动量优化算法,momentum=0.9;
采用L2正则化方法,惩罚系数0.00005,dropout比率设为0.5
初始学习率0.001,当验证集准确率不再提到时,学习率衰减为原来0.1倍,总共下降三次;
总迭代次数370K;
数据增强采用随机剪裁,水平翻转,RGB颜色变化;
设置训练图片大小的两种方法;
定义S代表经过各向同性缩放的训练图像最小边。
第一种方法针对单尺寸图像训练,S=256或384,输入图片从随机剪裁224X224大小的图片,原则上S可以任意不小于224的值。
第二种方法是多尺度训练,每一张图像单独从[Smin,Smax]中随机选取S来进行尺寸缩放,由于图像中目标物体尺寸不定,因此训练中采用这种方法是有效的,可以看做一种尺寸抖动的训练数据集。
论文提到,网络权重的初始化非常重要,由于深度网络深度的不稳定性,不适合的初始化会阻碍网络的学习。因此我们先训练浅层网络,再用训练好的浅层网络去初始化深层网络。
测试:
测试阶段,对于已经训练好的卷积网络和一张输入图像,采用以下方法分类:
首先,图像的最小边被各向同性的缩放到预定尺寸Q;
然后,将原先的全连接层该成卷积层,在未剪裁的全图像上运用卷积网络,输出是一个输入图像尺寸相关的分类得分图输出通道数与类别数相同;
最后,对分类得分图进行空间平均化,得到固定尺寸的分类得分向量。
我们同样对测试集做数据增强,采用水平翻转,最后取原始图像和翻转图像的softmax分类概率的平均值最为最终得分。
由于测试阶段采用全卷积网络,无需对输入图像进行剪裁,相对多重剪裁效率更高。但多重剪裁评估和运用全卷积的密集评估是互补的,有助于性能提升。
分类实验
单尺寸评估
表3展示单一测试尺寸上的卷积网络性能
卷积模型的融合
这部分讨论不同模型融合的性能,计算多个模型的softmax分类概率的平均值来对他们的输出进行组合,由于模型的互补性,性能有所提高,这也用于比赛的最佳结果。
结论:
本文评估了非常深的卷积网络在大规模图像分类上的性能。结果表明深度有利于分类准确率的提升。
VGG实现代码重点讲解
x = tf.placeholder(tf.float32,shape =[BATCH_SIZE,IMAGE_PIXELS])
tf.placeholder:用于传入真实训练样本/ 测试/ 真实特征/ 待处理特征。只是占位,不必给出初值。
用sess.run的feed_dict参数以字典形式喂入x:, y_: sess.run(feed_dict = {x: ,y_: })
BATCH_SIZE:一次传入的个数。 IMAGE_PIXELS:图像像素。
例:x = tf.placeholder(“float”,[1,224,224,3])
BATCH_SIZE为1,表示一次传入一个。图像像素为[224,224,3]。
w =tf.Variable(tf.random_normal()):从正态分布中给出权重w的随机值。
b = tf.Variable(tf.zeros()):统一将偏置b初始化为0。
注意:以上两行函数Variable中的V要大写,Variable必须给初值。
np.load np.save:将数组以二进制格式保存到磁盘,扩展名为.npy 。
.item():遍历(键值对)。
tf.shape(a)和a.get_shape()比较
相同点:都可以得到tensor a的尺寸
不同点:tf.shape()中 a 的数据类型可以是 tensor, list, array;
而a.get_shape()中a的数据类型只能是tensor,且返回的是一个元组(tuple)。
例如:
例:import tensorflow as tf
import numpy as np
x=tf.constant([[1,2,3],[4,5,6]]
y=[[1,2,3],[4,5,6]]
z=np.arange(24).reshape([2,3,4]))
sess=tf.Session() #tf.shape()
x_shape=tf.shape(x)
# x_shape 是一个tensor
y_shape=tf.shape(y) # 'Shape_2:0' shape=(2,) dtype=int32>
z_shape=tf.shape(z) # 'Shape_5:0'shape=(3,) dtype=int32>
print sess.run(x_shape) # 结果:[2 3]
print sess.run(y_shape) # 结果:[2 3]
print sess.run(z_shape) # 结果:[2 3 4]
#a.get_shape()
x_shape=x.get_shape() # 返回的是 TensorShape([Dimension(2),Dimension(3)]),不能使用 sess.run(),因为返回的不是tensor 或string,而是元组
x_shape=x.get_shape().as_list() #可以使用 as_list()得到具体的尺寸,x_shape=[2 3]
y_shape=y.get_shape() # AttributeError: 'list' object hasno attribute 'get_shape'
z_shape=z.get_shape() #AttributeError: 'numpy.ndarray' object has no attribute 'get_shape'
#改变tensor的形状
# tensor ‘t’ is [1, 2, 3, 4, 5, 6, 7, 8, 9]
# tensor ‘t’ has shape [9] reshape(t, [3, 3])==>
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
#如果shape有元素[-1],表示在该维度打平至一维
# -1 将自动推导得为 9:
reshape(t, [2, -1]) ==>
[[1, 1, 1, 2, 2, 2, 3, 3, 3],
[4, 4, 4, 5, 5, 5, 6, 6, 6]]
np.argsort(列表):对列表从小到大排序。
OS模块 os.getcwd():返回当前工作目录。
os.path.join(path1[,path2[,......]]):
返回值:将多个路径组合后返回。 注意:第一个绝对路径之前的参数将被忽略。
例:
>>>import os
>>> vgg16_path = os.path.join(os.getcwd(),"vgg16.npy")
#当前目录/vgg16.npy,索引到vgg16.npy文件
np.save:写数组到文件(未压缩二进制形式),文件默认的扩展名是.npy 。
np.save("名.npy",某数组):将某数组写入“名.npy”文件。
某变量 =np.load("名.npy",encoding= " ").item():将“名.npy”文件读出给某变量。
encoding = " " 可以不写‘latin1’、‘ASCII’、‘bytes’,默认为’ASCII’。 例:
>>> import numpy as np
A = np.arange(15).reshape(3,5)
>>> A array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13,14]])
>>> np.save("A.npy",A) #如果文件路径末尾没有扩展名.npy,该扩展名会被自动加上。
>>> B=np.load("A.npy")
>>> B array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13,14]])
tf.split(dimension,num_split, input):
dimension:输入张量的哪一个维度,如果是0就表示对第0维度进行切割。
num_split:切割的数量,如果是2就表示输入张量被切成2份,每一份是一个列表。 例:
import tensorflow as tf; import numpyas np;
A = [[1,2,3],[4,5,6]] x = tf.split(1,3, A)
with tf.Session() as sess:
c = sess.run(x) for ele in c: print ele
输出:
[[1]
[4]]
[[2]
[5]]
[[3]
[6]]
tf.concat(concat_dim, values):
沿着某一维度连结tensor:
t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]tf.concat(0, [t1, t2]) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11,12]]
tf.concat(1, [t1, t2]) ==>[[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
如果想沿着tensor一新轴连结打包,那么可以:
tf.concat(axis, [tf.expand_dims(t,axis) for t in tensors]) 等同于tf.pack(tensors, axis=axis)
fig = plt.figure("图名字"):实例化图对象。
ax = fig.add_subplot(m n k):将画布分割成m行n列,图像画在从左到右从上到下的第k块。
app.py代码展示:
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import vgg16
import utils
from Nclasses import labels
img_path = input('Input the path and image name:')
img_ready = utils.load_image(img_path)#图像预处理
fig = plt.figure(u"Top-5 预测结果")
with tf.Session() as sess:
images = tf.placeholder(tf.float32, [1, 224, 224, 3])
vgg = vgg16.Vgg16()#实例化
vgg.forward(images)
#喂入神经网络,得到预测输出
probability = sess.run(vgg.prob, feed_dict={images: img_ready})
#np.argsort函数返回预测值(probability的数据结构[[各个预测类别的概率值,]]由小到大的索引值
top5 = np.argsort(probability[0])[-1:-6:-1]#获取概率最大的五个索引值从大到小
print("top5:", top5)
#定义两个list,对应概率值和实际标签
values = []
bar_label = []
for n, i in enumerate(top5):#枚举上面的五个索引值
print("n:", n)
print("i:", i)
values.append(probability[0][i])#将索引值对应的预测概率取出并放入value
bar_label.append(labels[i])#根据索引值取出对应的实际标签放入进去
print(i, ":", labels[i], "----", utils.percent(probability[0][i]))#打印某个类别的概率
ax = fig.add_subplot(111)#将画分为一行一列,并将下图放入其中
#bar()函数绘制柱状图,参数range是柱状图的下标,value表示柱状高的列表(也就是五个预测概率值)
#tick_label是每个柱子上显示的标签(实际对应的标签),width是柱子的宽度,fc是柱子的颜色)
ax.bar(range(len(values)), values, tick_label=bar_label, width=0.5, fc='g')
ax.set_ylabel(u'probabilityit')
ax.set_title(u'Top-5')
for a, b in zip(range(len(values)), values):
#在每个柱子的顶端添加对应的预测概率值,a,b表示坐标,b+0.0005表示要把文本信息放置在高于每个柱子顶端0.0005的位置
ax.text(a, b + 0.0005, utils.percent(b), ha='center', va='bottom', fontsize=7)
plt.show()
vgg16.py代码:
import inspect
import os
import numpy as np
import tensorflow as tf
import time
import matplotlib.pyplot as plt
VGG_MEAN = [103.939, 116.779, 123.68]#样本RGB的平均值
class Vgg16():
def __init__(self, vgg16_path=None):
if vgg16_path is None:
vgg16_path = os.path.join(os.getcwd(), "vgg16.npy")#方法用于返回当前工作目录,训练好的 VGG模型 参数,需要提前导入
#print(vgg16_path)
self.data_dict= np.load(vgg16_path, encoding='latin1').item()#遍历模型参数 npy 文件,使用字典的 item()函数访问字典的每个元素,并且导入参数到 data_dict
for x in self.data_dict:#遍历data_dict中的每个键
print(x)
#定义获取卷积核的函数
def get_conv_filter(self, name):
return tf.constant(self.data_dict[name][0], name="filter")
#定义获取偏执项的函数
def get_bias(self, name):
return tf.constant(self.data_dict[name][1], name="biases")
#定义最大池化函数
def max_pool_2x2(self, x, name):
return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME', name=name)
#定义卷积运算
def conv_layer(self, x, name):
with tf.variable_scope(name):#根据命名空间找到对应卷积层的网络参数
w = self.get_conv_filter(name)#读到盖层的卷积核
conv = tf.nn.conv2d(x, w, [1, 1, 1, 1], padding='SAME')#卷积计算
conv_biases = self.get_bias(name)#读到偏执项
result = tf.nn.relu(tf.nn.bias_add(conv, conv_biases))#加上偏执,激活
return result
#定义获取权重的函数
def get_fc_weight(self, name):
return tf.constant(self.data_dict[name][0], name="weights")
#定义全连接层的前向传播计算
def fc_layer(self, x, name):
with tf.variable_scope(name):#根据命名空间找到对应全连接层的网络参数
shape = x.get_shape().as_list()#获取盖层的维度信息列表
print("fc_layer shape",shape)
dim = 1
for i in shape[1:]:
dim *= i#将盖层的维度相乘
#改变特征图的形状,也就是将得到的多维特征做拉伸操作,只在进入全连接层做该操作
x = tf.reshape(x, [-1, dim])
w = self.get_fc_weight(name)#读到权重
b = self.get_bias(name)#读到偏执
result = tf.nn.bias_add(tf.matmul(x, w), b)#对该层输入做加权求和,加上偏执
return result
#定义前向传播函数
def forward(self, images):
print("build model started")
start_time = time.time()#获取前向传播的开始时间
rgb_scaled = images * 255.0#逐像素x255(VGG论文)
red, green, blue = tf.split(rgb_scaled, 3, 3)
bgr = tf.concat([
blue - VGG_MEAN[0],
green - VGG_MEAN[1],
red - VGG_MEAN[2]], 3)
#构建VGG网络,13层卷积,3层全连接,5段卷积池化,并逐层根据命名空间读取到网络参数
self.conv1_1 = self.conv_layer(bgr, "conv1_1")
self.conv1_2 = self.conv_layer(self.conv1_1, "conv1_2")
self.pool1 = self.max_pool_2x2(self.conv1_2, "pool1")
self.conv2_1 = self.conv_layer(self.pool1, "conv2_1")
self.conv2_2 = self.conv_layer(self.conv2_1, "conv2_2")
self.pool2 = self.max_pool_2x2(self.conv2_2, "pool2")
self.conv3_1 = self.conv_layer(self.pool2, "conv3_1")
self.conv3_2 = self.conv_layer(self.conv3_1, "conv3_2")
self.conv3_3 = self.conv_layer(self.conv3_2, "conv3_3")
self.pool3 = self.max_pool_2x2(self.conv3_3, "pool3")
self.conv4_1 = self.conv_layer(self.pool3, "conv4_1")
self.conv4_2 = self.conv_layer(self.conv4_1, "conv4_2")
self.conv4_3 = self.conv_layer(self.conv4_2, "conv4_3")
self.pool4 = self.max_pool_2x2(self.conv4_3, "pool4")
self.conv5_1 = self.conv_layer(self.pool4, "conv5_1")
self.conv5_2 = self.conv_layer(self.conv5_1, "conv5_2")
self.conv5_3 = self.conv_layer(self.conv5_2, "conv5_3")
self.pool5 = self.max_pool_2x2(self.conv5_3, "pool5")
self.fc6 = self.fc_layer(self.pool5, "fc6")
self.relu6 = tf.nn.relu(self.fc6)
self.fc7 = self.fc_layer(self.relu6, "fc7")
self.relu7 = tf.nn.relu(self.fc7)
self.fc8 = self.fc_layer(self.relu7, "fc8")
self.prob = tf.nn.softmax(self.fc8, name="prob")
end_time = time.time()
print(("time consuming: %f" % (end_time - start_time)))
self.data_dict = None# 清空本次读取到的模型参数字典
utils.py:读入图片,概率显示
from skimage import io, transform#数字图像处理包
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示中文标签
mpl.rcParams['axes.unicode_minus'] = False # 正常显示正负号
def load_image(path):
fig = plt.figure("Centre and Resize")
img = io.imread(path)
img = img / 255.0#归一化到[0,1]
#将该分为一行三列
ax0 = fig.add_subplot(131)#把下面的图像放在该画的第一个位置
ax0.set_xlabel(u'Original Picture')#添加子标签
ax0.imshow(img)#添加展示该图像
short_edge = min(img.shape[:2])#找到该图像的最短边
y = (img.shape[0] - short_edge) // 2
x = (img.shape[1] - short_edge) //2#把图像的w和h分别减去最短边,求平均值
crop_img = img[y:y + short_edge, x:x + short_edge]#取出切分出的中心图像
# print(crop_img.shape)
ax1 = fig.add_subplot(132)#把下面的图像放在该画的第二个位置
ax1.set_xlabel(u"Centre Picture")#添加子标签
ax1.imshow(crop_img)#添加展示该图像
re_img = transform.resize(crop_img, (224, 224))#resize成固定的imag_size
ax2 = fig.add_subplot(133)#把下面的图像放在该画的第三个位置
ax2.set_xlabel(u"Resize Picture")#添加子标签
ax2.imshow(re_img)#添加展示该图像
img_ready = re_img.reshape((1, 224, 224, 3))
return img_ready
#定义百分比转化函数
def percent(value):
return '%.2f%%' % (value * 100)
Nclasses.py:含lables字典,共1000个标签
labels = {
0: 'tench\n Tinca tinca',
1: 'goldfish\n Carassius auratus',
2: 'great white shark\n white shark\n man-eater\n man-eating shark\n Carcharodon carcharias',
3: 'tiger shark\n Galeocerdo cuvieri',
4: 'hammerhead\n hammerhead shark',
5: 'electric ray\n crampfish\n numbfish\n torpedo',
6: 'stingray',
7: 'cock',
8: 'hen',
9: 'ostrich\n Struthio camelus',
10: 'brambling\n Fringilla montifringilla',
11: 'goldfinch\n Carduelis carduelis',
12: 'house finch\n linnet\n Carpodacus mexicanus',
13: 'junco\n snowbird',
14: 'indigo bunting\n indigo finch\n indigo bird\n Passerina cyanea',
15: 'robin\n American robin\n Turdus migratorius',
16: 'bulbul',
17: 'jay',
18: 'magpie',
19: 'chickadee',
20: 'water ouzel\n dipper',
21: 'kite',
22: 'bald eagle\n American eagle\n Haliaeetus leucocephalus',
23: 'vulture',
24: 'great grey owl\n great gray owl\n Strix nebulosa',
25: 'European fire salamander\n Salamandra salamandra',
26: 'common newt\n Triturus vulgaris',
27: 'eft',
28: 'spotted salamander\n Ambystoma maculatum',
29: 'axolotl\n mud puppy\n Ambystoma mexicanum',
30: 'bullfrog\n Rana catesbeiana',
31: 'tree frog\n tree-frog',
32: 'tailed frog\n bell toad\n ribbed toad\n tailed toad\n Ascaphus trui',
33: 'loggerhead\n loggerhead turtle\n Caretta caretta',
34: 'leatherback turtle\n leatherback\n leathery turtle\n Dermochelys coriacea',
35: 'mud turtle',
36: 'terrapin',
37: 'box turtle\n box tortoise',
38: 'banded gecko',
39: 'common iguana\n iguana\n Iguana iguana',
40: 'American chameleon\n anole\n Anolis carolinensis',
41: 'whiptail\n whiptail lizard',
42: 'agama',
43: 'frilled lizard\n Chlamydosaurus kingi',
44: 'alligator lizard',
45: 'Gila monster\n Heloderma suspectum',
46: 'green lizard\n Lacerta viridis',
47: 'African chameleon\n Chamaeleo chamaeleon',
48: 'Komodo dragon\n Komodo lizard\n dragon lizard\n giant lizard\n Varanus komodoensis',
49: 'African crocodile\n Nile crocodile\n Crocodylus niloticus',
50: 'American alligator\n Alligator mississipiensis',
51: 'triceratops',
52: 'thunder snake\n worm snake\n Carphophis amoenus',
53: 'ringneck snake\n ring-necked snake\n ring snake',
54: 'hognose snake\n puff adder\n sand viper',
55: 'green snake\n grass snake',
56: 'king snake\n kingsnake',
57: 'garter snake\n grass snake',
58: 'water snake',
59: 'vine snake',
60: 'night snake\n Hypsiglena torquata',
61: 'boa constrictor\n Constrictor constrictor',
62: 'rock python\n rock snake\n Python sebae',
63: 'Indian cobra\n Naja naja',
64: 'green mamba',
65: 'sea snake',
66: 'horned viper\n cerastes\n sand viper\n horned asp\n Cerastes cornutus',
67: 'diamondback\n diamondback rattlesnake\n Crotalus adamanteus',
68: 'sidewinder\n horned rattlesnake\n Crotalus cerastes',
69: 'trilobite',
70: 'harvestman\n daddy longlegs\n Phalangium opilio',
71: 'scorpion',
72: 'black and gold garden spider\n Argiope aurantia',
73: 'barn spider\n Araneus cavaticus',
74: 'garden spider\n Aranea diademata',
75: 'black widow\n Latrodectus mactans',
76: 'tarantula',
77: 'wolf spider\n hunting spider',
78: 'tick',
79: 'centipede',
80: 'black grouse',
81: 'ptarmigan',
82: 'ruffed grouse\n partridge\n Bonasa umbellus',
83: 'prairie chicken\n prairie grouse\n prairie fowl',
84: 'peacock',
85: 'quail',
86: 'partridge',
87: 'African grey\n African gray\n Psittacus erithacus',
88: 'macaw',
89: 'sulphur-crested cockatoo\n Kakatoe galerita\n Cacatua galerita',
90: 'lorikeet',
91: 'coucal',
92: 'bee eater',
93: 'hornbill',
94: 'hummingbird',
95: 'jacamar',
96: 'toucan',
97: 'drake',
98: 'red-breasted merganser\n Mergus serrator',
99: 'goose',
100: 'black swan\n Cygnus atratus',
101: 'tusker',
102: 'echidna\n spiny anteater\n anteater',
103: 'platypus\n duckbill\n duckbilled platypus\n duck-billed platypus\n Ornithorhynchus anatinus',
104: 'wallaby\n brush kangaroo',
105: 'koala\n koala bear\n kangaroo bear\n native bear\n Phascolarctos cinereus',
106: 'wombat',
107: 'jellyfish',
108: 'sea anemone\n anemone',
109: 'brain coral',
110: 'flatworm\n platyhelminth',
111: 'nematode\n nematode worm\n roundworm',
112: 'conch',
113: 'snail',
114: 'slug',
115: 'sea slug\n nudibranch',
116: 'chiton\n coat-of-mail shell\n sea cradle\n polyplacophore',
117: 'chambered nautilus\n pearly nautilus\n nautilus',
118: 'Dungeness crab\n Cancer magister',
119: 'rock crab\n Cancer irroratus',
120: 'fiddler crab',
121: 'king crab\n Alaska crab\n Alaskan king crab\n Alaska king crab\n Paralithodes camtschatica',
122: 'American lobster\n Northern lobster\n Maine lobster\n Homarus americanus',
123: 'spiny lobster\n langouste\n rock lobster\n crawfish\n crayfish\n sea crawfish',
124: 'crayfish\n crawfish\n crawdad\n crawdaddy',
125: 'hermit crab',
126: 'isopod',
127: 'white stork\n Ciconia ciconia',
128: 'black stork\n Ciconia nigra',
129: 'spoonbill',
130: 'flamingo',
131: 'little blue heron\n Egretta caerulea',
132: 'American egret\n great white heron\n Egretta albus',
133: 'bittern',
134: 'crane',
135: 'limpkin\n Aramus pictus',
136: 'European gallinule\n Porphyrio porphyrio',
137: 'American coot\n marsh hen\n mud hen\n water hen\n Fulica americana',
138: 'bustard',
139: 'ruddy turnstone\n Arenaria interpres',
140: 'red-backed sandpiper\n dunlin\n Erolia alpina',
141: 'redshank\n Tringa totanus',
142: 'dowitcher',
143: 'oystercatcher\n oyster catcher',
144: 'pelican',
145: 'king penguin\n Aptenodytes patagonica',
146: 'albatross\n mollymawk',
147: 'grey whale\n gray whale\n devilfish\n Eschrichtius gibbosus\n Eschrichtius robustus',
148: 'killer whale\n killer\n orca\n grampus\n sea wolf\n Orcinus orca',
149: 'dugong\n Dugong dugon',
150: 'sea lion',
151: 'Chihuahua',
152: 'Japanese spaniel',
153: 'Maltese dog\n Maltese terrier\n Maltese',
154: 'Pekinese\n Pekingese\n Peke',
155: 'Shih-Tzu',
156: 'Blenheim spaniel',
157: 'papillon',
158: 'toy terrier',
159: 'Rhodesian ridgeback',
160: 'Afghan hound\n Afghan',
161: 'basset\n basset hound',
162: 'beagle',
163: 'bloodhound\n sleuthhound',
164: 'bluetick',
165: 'black-and-tan coonhound',
166: 'Walker hound\n Walker foxhound',
167: 'English foxhound',
168: 'redbone',
169: 'borzoi\n Russian wolfhound',
170: 'Irish wolfhound',
171: 'Italian greyhound',
172: 'whippet',
173: 'Ibizan hound\n Ibizan Podenco',
174: 'Norwegian elkhound\n elkhound',
175: 'otterhound\n otter hound',
176: 'Saluki\n gazelle hound',
177: 'Scottish deerhound\n deerhound',
178: 'Weimaraner',
179: 'Staffordshire bullterrier\n Staffordshire bull terrier',
180: 'American Staffordshire terrier\n Staffordshire terrier\n American pit bull terrier\n pit bull terrier',
181: 'Bedlington terrier',
182: 'Border terrier',
183: 'Kerry blue terrier',
184: 'Irish terrier',
185: 'Norfolk terrier',
186: 'Norwich terrier',
187: 'Yorkshire terrier',
188: 'wire-haired fox terrier',
189: 'Lakeland terrier',
190: 'Sealyham terrier\n Sealyham',
191: 'Airedale\n Airedale terrier',
192: 'cairn\n cairn terrier',
193: 'Australian terrier',
194: 'Dandie Dinmont\n Dandie Dinmont terrier',
195: 'Boston bull\n Boston terrier',
196: 'miniature schnauzer',
197: 'giant schnauzer',
198: 'standard schnauzer',
199: 'Scotch terrier\n Scottish terrier\n Scottie',
200: 'Tibetan terrier\n chrysanthemum dog',
201: 'silky terrier\n Sydney silky',
202: 'soft-coated wheaten terrier',
203: 'West Highland white terrier',
204: 'Lhasa\n Lhasa apso',
205: 'flat-coated retriever',
206: 'curly-coated retriever',
207: 'golden retriever',
208: 'Labrador retriever',
209: 'Chesapeake Bay retriever',
210: 'German short-haired pointer',
211: 'vizsla\n Hungarian pointer',
212: 'English setter',
213: 'Irish setter\n red setter',
214: 'Gordon setter',
215: 'Brittany spaniel',
216: 'clumber\n clumber spaniel',
217: 'English springer\n English springer spaniel',
218: 'Welsh springer spaniel',
219: 'cocker spaniel\n English cocker spaniel\n cocker',
220: 'Sussex spaniel',
221: 'Irish water spaniel',
222: 'kuvasz',
223: 'schipperke',
224: 'groenendael',
225: 'malinois',
226: 'briard',
227: 'kelpie',
228: 'komondor',
229: 'Old English sheepdog\n bobtail',
230: 'Shetland sheepdog\n Shetland sheep dog\n Shetland',
231: 'collie',
232: 'Border collie',
233: 'Bouvier des Flandres\n Bouviers des Flandres',
234: 'Rottweiler',
235: 'German shepherd\n German shepherd dog\n German police dog\n alsatian',
236: 'Doberman\n Doberman pinscher',
237: 'miniature pinscher',
238: 'Greater Swiss Mountain dog',
239: 'Bernese mountain dog',
240: 'Appenzeller',
241: 'EntleBucher',
242: 'boxer',
243: 'bull mastiff',
244: 'Tibetan mastiff',
245: 'French bulldog',
246: 'Great Dane',
247: 'Saint Bernard\n St Bernard',
248: 'Eskimo dog\n husky',
249: 'malamute\n malemute\n Alaskan malamute',
250: 'Siberian husky',
251: 'dalmatian\n coach dog\n carriage dog',
252: 'affenpinscher\n monkey pinscher\n monkey dog',
253: 'basenji',
254: 'pug\n pug-dog',
255: 'Leonberg',
256: 'Newfoundland\n Newfoundland dog',
257: 'Great Pyrenees',
258: 'Samoyed\n Samoyede',
259: 'Pomeranian',
260: 'chow\n chow chow',
261: 'keeshond',
262: 'Brabancon griffon',
263: 'Pembroke\n Pembroke Welsh corgi',
264: 'Cardigan\n Cardigan Welsh corgi',
265: 'toy poodle',
266: 'miniature poodle',
267: 'standard poodle',
268: 'Mexican hairless',
269: 'timber wolf\n grey wolf\n gray wolf\n Canis lupus',
270: 'white wolf\n Arctic wolf\n Canis lupus tundrarum',
271: 'red wolf\n maned wolf\n Canis rufus\n Canis niger',
272: 'coyote\n prairie wolf\n brush wolf\n Canis latrans',
273: 'dingo\n warrigal\n warragal\n Canis dingo',
274: 'dhole\n Cuon alpinus',
275: 'African hunting dog\n hyena dog\n Cape hunting dog\n Lycaon pictus',
276: 'hyena\n hyaena',
277: 'red fox\n Vulpes vulpes',
278: 'kit fox\n Vulpes macrotis',
279: 'Arctic fox\n white fox\n Alopex lagopus',
280: 'grey fox\n gray fox\n Urocyon cinereoargenteus',
281: 'tabby\n tabby cat',
282: 'tiger cat',
283: 'Persian cat',
284: 'Siamese cat\n Siamese',
285: 'Egyptian cat',
286: 'cougar\n puma\n catamount\n mountain lion\n painter\n panther\n Felis concolor',
287: 'lynx\n catamount',
288: 'leopard\n Panthera pardus',
289: 'snow leopard\n ounce\n Panthera uncia',
290: 'jaguar\n panther\n Panthera onca\n Felis onca',
291: 'lion\n king of beasts\n Panthera leo',
292: 'tiger\n Panthera tigris',
293: 'cheetah\n chetah\n Acinonyx jubatus',
294: 'brown bear\n bruin\n Ursus arctos',
295: 'American black bear\n black bear\n Ursus americanus\n Euarctos americanus',
296: 'ice bear\n polar bear\n Ursus Maritimus\n Thalarctos maritimus',
297: 'sloth bear\n Melursus ursinus\n Ursus ursinus',
298: 'mongoose',
299: 'meerkat\n mierkat',
300: 'tiger beetle',
301: 'ladybug\n ladybeetle\n lady beetle\n ladybird\n ladybird beetle',
302: 'ground beetle\n carabid beetle',
303: 'long-horned beetle\n longicorn\n longicorn beetle',
304: 'leaf beetle\n chrysomelid',
305: 'dung beetle',
306: 'rhinoceros beetle',
307: 'weevil',
308: 'fly',
309: 'bee',
310: 'ant\n emmet\n pismire',
311: 'grasshopper\n hopper',
312: 'cricket',
313: 'walking stick\n walkingstick\n stick insect',
314: 'cockroach\n roach',
315: 'mantis\n mantid',
316: 'cicada\n cicala',
317: 'leafhopper',
318: 'lacewing\n lacewing fly',
319: "dragonfly\n darning needle\n devil's darning needle\n sewing needle\n snake feeder\n snake doctor\n mosquito hawk\n skeeter hawk",
320: 'damselfly',
321: 'admiral',
322: 'ringlet\n ringlet butterfly',
323: 'monarch\n monarch butterfly\n milkweed butterfly\n Danaus plexippus',
324: 'cabbage butterfly',
325: 'sulphur butterfly\n sulfur butterfly',
326: 'lycaenid\n lycaenid butterfly',
327: 'starfish\n sea star',
328: 'sea urchin',
329: 'sea cucumber\n holothurian',
330: 'wood rabbit\n cottontail\n cottontail rabbit',
331: 'hare',
332: 'Angora\n Angora rabbit',
333: 'hamster',
334: 'porcupine\n hedgehog',
335: 'fox squirrel\n eastern fox squirrel\n Sciurus niger',
336: 'marmot',
337: 'beaver',
338: 'guinea pig\n Cavia cobaya',
339: 'sorrel',
340: 'zebra',
341: 'hog\n pig\n grunter\n squealer\n Sus scrofa',
342: 'wild boar\n boar\n Sus scrofa',
343: 'warthog',
344: 'hippopotamus\n hippo\n river horse\n Hippopotamus amphibius',
345: 'ox',
346: 'water buffalo\n water ox\n Asiatic buffalo\n Bubalus bubalis',
347: 'bison',
348: 'ram\n tup',
349: 'bighorn\n bighorn sheep\n cimarron\n Rocky Mountain bighorn\n Rocky Mountain sheep\n Ovis canadensis',
350: 'ibex\n Capra ibex',
351: 'hartebeest',
352: 'impala\n Aepyceros melampus',
353: 'gazelle',
354: 'Arabian camel\n dromedary\n Camelus dromedarius',
355: 'llama',
356: 'weasel',
357: 'mink',
358: 'polecat\n fitch\n foulmart\n foumart\n Mustela putorius',
359: 'black-footed ferret\n ferret\n Mustela nigripes',
360: 'otter',
361: 'skunk\n polecat\n wood pussy',
362: 'badger',
363: 'armadillo',
364: 'three-toed sloth\n ai\n Bradypus tridactylus',
365: 'orangutan\n orang\n orangutang\n Pongo pygmaeus',
366: 'gorilla\n Gorilla gorilla',
367: 'chimpanzee\n chimp\n Pan troglodytes',
368: 'gibbon\n Hylobates lar',
369: 'siamang\n Hylobates syndactylus\n Symphalangus syndactylus',
370: 'guenon\n guenon monkey',
371: 'patas\n hussar monkey\n Erythrocebus patas',
372: 'baboon',
373: 'macaque',
374: 'langur',
375: 'colobus\n colobus monkey',
376: 'proboscis monkey\n Nasalis larvatus',
377: 'marmoset',
378: 'capuchin\n ringtail\n Cebus capucinus',
379: 'howler monkey\n howler',
380: 'titi\n titi monkey',
381: 'spider monkey\n Ateles geoffroyi',
382: 'squirrel monkey\n Saimiri sciureus',
383: 'Madagascar cat\n ring-tailed lemur\n Lemur catta',
384: 'indri\n indris\n Indri indri\n Indri brevicaudatus',
385: 'Indian elephant\n Elephas maximus',
386: 'African elephant\n Loxodonta africana',
387: 'lesser panda\n red panda\n panda\n bear cat\n cat bear\n Ailurus fulgens',
388: 'giant panda\n panda\n panda bear\n coon bear\n Ailuropoda melanoleuca',
389: 'barracouta\n snoek',
390: 'eel',
391: 'coho\n cohoe\n coho salmon\n blue jack\n silver salmon\n Oncorhynchus kisutch',
392: 'rock beauty\n Holocanthus tricolor',
393: 'anemone fish',
394: 'sturgeon',
395: 'gar\n garfish\n garpike\n billfish\n Lepisosteus osseus',
396: 'lionfish',
397: 'puffer\n pufferfish\n blowfish\n globefish',
398: 'abacus',
399: 'abaya',
400: "academic gown\n academic robe\n judge's robe",
401: 'accordion\n piano accordion\n squeeze box',
402: 'acoustic guitar',
403: 'aircraft carrier\n carrier\n flattop\n attack aircraft carrier',
404: 'airliner',
405: 'airship\n dirigible',
406: 'altar',
407: 'ambulance',
408: 'amphibian\n amphibious vehicle',
409: 'analog clock',
410: 'apiary\n bee house',
411: 'apron',
412: 'ashcan\n trash can\n garbage can\n wastebin\n ash bin\n ash-bin\n ashbin\n dustbin\n trash barrel\n trash bin',
413: 'assault rifle\n assault gun',
414: 'backpack\n back pack\n knapsack\n packsack\n rucksack\n haversack',
415: 'bakery\n bakeshop\n bakehouse',
416: 'balance beam\n beam',
417: 'balloon',
418: 'ballpoint\n ballpoint pen\n ballpen\n Biro',
419: 'Band Aid',
420: 'banjo',
421: 'bannister\n banister\n balustrade\n balusters\n handrail',
422: 'barbell',
423: 'barber chair',
424: 'barbershop',
425: 'barn',
426: 'barometer',
427: 'barrel\n cask',
428: 'barrow\n garden cart\n lawn cart\n wheelbarrow',
429: 'baseball',
430: 'basketball',
431: 'bassinet',
432: 'bassoon',
433: 'bathing cap\n swimming cap',
434: 'bath towel',
435: 'bathtub\n bathing tub\n bath\n tub',
436: 'beach wagon\n station wagon\n wagon\n estate car\n beach waggon\n station waggon\n waggon',
437: 'beacon\n lighthouse\n beacon light\n pharos',
438: 'beaker',
439: 'bearskin\n busby\n shako',
440: 'beer bottle',
441: 'beer glass',
442: 'bell cote\n bell cot',
443: 'bib',
444: 'bicycle-built-for-two\n tandem bicycle\n tandem',
445: 'bikini\n two-piece',
446: 'binder\n ring-binder',
447: 'binoculars\n field glasses\n opera glasses',
448: 'birdhouse',
449: 'boathouse',
450: 'bobsled\n bobsleigh\n bob',
451: 'bolo tie\n bolo\n bola tie\n bola',
452: 'bonnet\n poke bonnet',
453: 'bookcase',
454: 'bookshop\n bookstore\n bookstall',
455: 'bottlecap',
456: 'bow',
457: 'bow tie\n bow-tie\n bowtie',
458: 'brass\n memorial tablet\n plaque',
459: 'brassiere\n bra\n bandeau',
460: 'breakwater\n groin\n groyne\n mole\n bulwark\n seawall\n jetty',
461: 'breastplate\n aegis\n egis',
462: 'broom',
463: 'bucket\n pail',
464: 'buckle',
465: 'bulletproof vest',
466: 'bullet train\n bullet',
467: 'butcher shop\n meat market',
468: 'cab\n hack\n taxi\n taxicab',
469: 'caldron\n cauldron',
470: 'candle\n taper\n wax light',
471: 'cannon',
472: 'canoe',
473: 'can opener\n tin opener',
474: 'cardigan',
475: 'car mirror',
476: 'carousel\n carrousel\n merry-go-round\n roundabout\n whirligig',
477: "carpenter's kit\n tool kit",
478: 'carton',
479: 'car wheel',
480: 'cash machine\n cash dispenser\n automated teller machine\n automatic teller machine\n automated teller\n automatic teller\n ATM',
481: 'cassette',
482: 'cassette player',
483: 'castle',
484: 'catamaran',
485: 'CD player',
486: 'cello\n violoncello',
487: 'cellular telephone\n cellular phone\n cellphone\n cell\n mobile phone',
488: 'chain',
489: 'chainlink fence',
490: 'chain mail\n ring mail\n mail\n chain armor\n chain armour\n ring armor\n ring armour',
491: 'chain saw\n chainsaw',
492: 'chest',
493: 'chiffonier\n commode',
494: 'chime\n bell\n gong',
495: 'china cabinet\n china closet',
496: 'Christmas stocking',
497: 'church\n church building',
498: 'cinema\n movie theater\n movie theatre\n movie house\n picture palace',
499: 'cleaver\n meat cleaver\n chopper',
500: 'cliff dwelling',
501: 'cloak',
502: 'clog\n geta\n patten\n sabot',
503: 'cocktail shaker',
504: 'coffee mug',
505: 'coffeepot',
506: 'coil\n spiral\n volute\n whorl\n helix',
507: 'combination lock',
508: 'computer keyboard\n keypad',
509: 'confectionery\n confectionary\n candy store',
510: 'container ship\n containership\n container vessel',
511: 'convertible',
512: 'corkscrew\n bottle screw',
513: 'cornet\n horn\n trumpet\n trump',
514: 'cowboy boot',
515: 'cowboy hat\n ten-gallon hat',
516: 'cradle',
517: 'crane',
518: 'crash helmet',
519: 'crate',
520: 'crib\n cot',
521: 'Crock Pot',
522: 'croquet ball',
523: 'crutch',
524: 'cuirass',
525: 'dam\n dike\n dyke',
526: 'desk',
527: 'desktop computer',
528: 'dial telephone\n dial phone',
529: 'diaper\n nappy\n napkin',
530: 'digital clock',
531: 'digital watch',
532: 'dining table\n board',
533: 'dishrag\n dishcloth',
534: 'dishwasher\n dish washer\n dishwashing machine',
535: 'disk brake\n disc brake',
536: 'dock\n dockage\n docking facility',
537: 'dogsled\n dog sled\n dog sleigh',
538: 'dome',
539: 'doormat\n welcome mat',
540: 'drilling platform\n offshore rig',
541: 'drum\n membranophone\n tympan',
542: 'drumstick',
543: 'dumbbell',
544: 'Dutch oven',
545: 'electric fan\n blower',
546: 'electric guitar',
547: 'electric locomotive',
548: 'entertainment center',
549: 'envelope',
550: 'espresso maker',
551: 'face powder',
552: 'feather boa\n boa',
553: 'file\n file cabinet\n filing cabinet',
554: 'fireboat',
555: 'fire engine\n fire truck',
556: 'fire screen\n fireguard',
557: 'flagpole\n flagstaff',
558: 'flute\n transverse flute',
559: 'folding chair',
560: 'football helmet',
561: 'forklift',
562: 'fountain',
563: 'fountain pen',
564: 'four-poster',
565: 'freight car',
566: 'French horn\n horn',
567: 'frying pan\n frypan\n skillet',
568: 'fur coat',
569: 'garbage truck\n dustcart',
570: 'gasmask\n respirator\n gas helmet',
571: 'gas pump\n gasoline pump\n petrol pump\n island dispenser',
572: 'goblet',
573: 'go-kart',
574: 'golf ball',
575: 'golfcart\n golf cart',
576: 'gondola',
577: 'gong\n tam-tam',
578: 'gown',
579: 'grand piano\n grand',
580: 'greenhouse\n nursery\n glasshouse',
581: 'grille\n radiator grille',
582: 'grocery store\n grocery\n food market\n market',
583: 'guillotine',
584: 'hair slide',
585: 'hair spray',
586: 'half track',
587: 'hammer',
588: 'hamper',
589: 'hand blower\n blow dryer\n blow drier\n hair dryer\n hair drier',
590: 'hand-held computer\n hand-held microcomputer',
591: 'handkerchief\n hankie\n hanky\n hankey',
592: 'hard disc\n hard disk\n fixed disk',
593: 'harmonica\n mouth organ\n harp\n mouth harp',
594: 'harp',
595: 'harvester\n reaper',
596: 'hatchet',
597: 'holster',
598: 'home theater\n home theatre',
599: 'honeycomb',
600: 'hook\n claw',
601: 'hoopskirt\n crinoline',
602: 'horizontal bar\n high bar',
603: 'horse cart\n horse-cart',
604: 'hourglass',
605: 'iPod',
606: 'iron\n smoothing iron',
607: "jack-o'-lantern",
608: 'jean\n blue jean\n denim',
609: 'jeep\n landrover',
610: 'jersey\n T-shirt\n tee shirt',
611: 'jigsaw puzzle',
612: 'jinrikisha\n ricksha\n rickshaw',
613: 'joystick',
614: 'kimono',
615: 'knee pad',
616: 'knot',
617: 'lab coat\n laboratory coat',
618: 'ladle',
619: 'lampshade\n lamp shade',
620: 'laptop\n laptop computer',
621: 'lawn mower\n mower',
622: 'lens cap\n lens cover',
623: 'letter opener\n paper knife\n paperknife',
624: 'library',
625: 'lifeboat',
626: 'lighter\n light\n igniter\n ignitor',
627: 'limousine\n limo',
628: 'liner\n ocean liner',
629: 'lipstick\n lip rouge',
630: 'Loafer',
631: 'lotion',
632: 'loudspeaker\n speaker\n speaker unit\n loudspeaker system\n speaker system',
633: "loupe\n jeweler's loupe",
634: 'lumbermill\n sawmill',
635: 'magnetic compass',
636: 'mailbag\n postbag',
637: 'mailbox\n letter box',
638: 'maillot',
639: 'maillot\n tank suit',
640: 'manhole cover',
641: 'maraca',
642: 'marimba\n xylophone',
643: 'mask',
644: 'matchstick',
645: 'maypole',
646: 'maze\n labyrinth',
647: 'measuring cup',
648: 'medicine chest\n medicine cabinet',
649: 'megalith\n megalithic structure',
650: 'microphone\n mike',
651: 'microwave\n microwave oven',
652: 'military uniform',
653: 'milk can',
654: 'minibus',
655: 'miniskirt\n mini',
656: 'minivan',
657: 'missile',
658: 'mitten',
659: 'mixing bowl',
660: 'mobile home\n manufactured home',
661: 'Model T',
662: 'modem',
663: 'monastery',
664: 'monitor',
665: 'moped',
666: 'mortar',
667: 'mortarboard',
668: 'mosque',
669: 'mosquito net',
670: 'motor scooter\n scooter',
671: 'mountain bike\n all-terrain bike\n off-roader',
672: 'mountain tent',
673: 'mouse\n computer mouse',
674: 'mousetrap',
675: 'moving van',
676: 'muzzle',
677: 'nail',
678: 'neck brace',
679: 'necklace',
680: 'nipple',
681: 'notebook\n notebook computer',
682: 'obelisk',
683: 'oboe\n hautboy\n hautbois',
684: 'ocarina\n sweet potato',
685: 'odometer\n hodometer\n mileometer\n milometer',
686: 'oil filter',
687: 'organ\n pipe organ',
688: 'oscilloscope\n scope\n cathode-ray oscilloscope\n CRO',
689: 'overskirt',
690: 'oxcart',
691: 'oxygen mask',
692: 'packet',
693: 'paddle\n boat paddle',
694: 'paddlewheel\n paddle wheel',
695: 'padlock',
696: 'paintbrush',
697: "pajama\n pyjama\n pj's\n jammies",
698: 'palace',
699: 'panpipe\n pandean pipe\n syrinx',
700: 'paper towel',
701: 'parachute\n chute',
702: 'parallel bars\n bars',
703: 'park bench',
704: 'parking meter',
705: 'passenger car\n coach\n carriage',
706: 'patio\n terrace',
707: 'pay-phone\n pay-station',
708: 'pedestal\n plinth\n footstall',
709: 'pencil box\n pencil case',
710: 'pencil sharpener',
711: 'perfume\n essence',
712: 'Petri dish',
713: 'photocopier',
714: 'pick\n plectrum\n plectron',
715: 'pickelhaube',
716: 'picket fence\n paling',
717: 'pickup\n pickup truck',
718: 'pier',
719: 'piggy bank\n penny bank',
720: 'pill bottle',
721: 'pillow',
722: 'ping-pong ball',
723: 'pinwheel',
724: 'pirate\n pirate ship',
725: 'pitcher\n ewer',
726: "plane\n carpenter's plane\n woodworking plane",
727: 'planetarium',
728: 'plastic bag',
729: 'plate rack',
730: 'plow\n plough',
731: "plunger\n plumber's helper",
732: 'Polaroid camera\n Polaroid Land camera',
733: 'pole',
734: 'police van\n police wagon\n paddy wagon\n patrol wagon\n wagon\n black Maria',
735: 'poncho',
736: 'pool table\n billiard table\n snooker table',
737: 'pop bottle\n soda bottle',
738: 'pot\n flowerpot',
739: "potter's wheel",
740: 'power drill',
741: 'prayer rug\n prayer mat',
742: 'printer',
743: 'prison\n prison house',
744: 'projectile\n missile',
745: 'projector',
746: 'puck\n hockey puck',
747: 'punching bag\n punch bag\n punching ball\n punchball',
748: 'purse',
749: 'quill\n quill pen',
750: 'quilt\n comforter\n comfort\n puff',
751: 'racer\n race car\n racing car',
752: 'racket\n racquet',
753: 'radiator',
754: 'radio\n wireless',
755: 'radio telescope\n radio reflector',
756: 'rain barrel',
757: 'recreational vehicle\n RV\n R.V.',
758: 'reel',
759: 'reflex camera',
760: 'refrigerator\n icebox',
761: 'remote control\n remote',
762: 'restaurant\n eating house\n eating place\n eatery',
763: 'revolver\n six-gun\n six-shooter',
764: 'rifle',
765: 'rocking chair\n rocker',
766: 'rotisserie',
767: 'rubber eraser\n rubber\n pencil eraser',
768: 'rugby ball',
769: 'rule\n ruler',
770: 'running shoe',
771: 'safe',
772: 'safety pin',
773: 'saltshaker\n salt shaker',
774: 'sandal',
775: 'sarong',
776: 'sax\n saxophone',
777: 'scabbard',
778: 'scale\n weighing machine',
779: 'school bus',
780: 'schooner',
781: 'scoreboard',
782: 'screen\n CRT screen',
783: 'screw',
784: 'screwdriver',
785: 'seat belt\n seatbelt',
786: 'sewing machine',
787: 'shield\n buckler',
788: 'shoe shop\n shoe-shop\n shoe store',
789: 'shoji',
790: 'shopping basket',
791: 'shopping cart',
792: 'shovel',
793: 'shower cap',
794: 'shower curtain',
795: 'ski',
796: 'ski mask',
797: 'sleeping bag',
798: 'slide rule\n slipstick',
799: 'sliding door',
800: 'slot\n one-armed bandit',
801: 'snorkel',
802: 'snowmobile',
803: 'snowplow\n snowplough',
804: 'soap dispenser',
805: 'soccer ball',
806: 'sock',
807: 'solar dish\n solar collector\n solar furnace',
808: 'sombrero',
809: 'soup bowl',
810: 'space bar',
811: 'space heater',
812: 'space shuttle',
813: 'spatula',
814: 'speedboat',
815: "spider web\n spider's web",
816: 'spindle',
817: 'sports car\n sport car',
818: 'spotlight\n spot',
819: 'stage',
820: 'steam locomotive',
821: 'steel arch bridge',
822: 'steel drum',
823: 'stethoscope',
824: 'stole',
825: 'stone wall',
826: 'stopwatch\n stop watch',
827: 'stove',
828: 'strainer',
829: 'streetcar\n tram\n tramcar\n trolley\n trolley car',
830: 'stretcher',
831: 'studio couch\n day bed',
832: 'stupa\n tope',
833: 'submarine\n pigboat\n sub\n U-boat',
834: 'suit\n suit of clothes',
835: 'sundial',
836: 'sunglass',
837: 'sunglasses\n dark glasses\n shades',
838: 'sunscreen\n sunblock\n sun blocker',
839: 'suspension bridge',
840: 'swab\n swob\n mop',
841: 'sweatshirt',
842: 'swimming trunks\n bathing trunks',
843: 'swing',
844: 'switch\n electric switch\n electrical switch',
845: 'syringe',
846: 'table lamp',
847: 'tank\n army tank\n armored combat vehicle\n armoured combat vehicle',
848: 'tape player',
849: 'teapot',
850: 'teddy\n teddy bear',
851: 'television\n television system',
852: 'tennis ball',
853: 'thatch\n thatched roof',
854: 'theater curtain\n theatre curtain',
855: 'thimble',
856: 'thresher\n thrasher\n threshing machine',
857: 'throne',
858: 'tile roof',
859: 'toaster',
860: 'tobacco shop\n tobacconist shop\n tobacconist',
861: 'toilet seat',
862: 'torch',
863: 'totem pole',
864: 'tow truck\n tow car\n wrecker',
865: 'toyshop',
866: 'tractor',
867: 'trailer truck\n tractor trailer\n trucking rig\n rig\n articulated lorry\n semi',
868: 'tray',
869: 'trench coat',
870: 'tricycle\n trike\n velocipede',
871: 'trimaran',
872: 'tripod',
873: 'triumphal arch',
874: 'trolleybus\n trolley coach\n trackless trolley',
875: 'trombone',
876: 'tub\n vat',
877: 'turnstile',
878: 'typewriter keyboard',
879: 'umbrella',
880: 'unicycle\n monocycle',
881: 'upright\n upright piano',
882: 'vacuum\n vacuum cleaner',
883: 'vase',
884: 'vault',
885: 'velvet',
886: 'vending machine',
887: 'vestment',
888: 'viaduct',
889: 'violin\n fiddle',
890: 'volleyball',
891: 'waffle iron',
892: 'wall clock',
893: 'wallet\n billfold\n notecase\n pocketbook',
894: 'wardrobe\n closet\n press',
895: 'warplane\n military plane',
896: 'washbasin\n handbasin\n washbowl\n lavabo\n wash-hand basin',
897: 'washer\n automatic washer\n washing machine',
898: 'water bottle',
899: 'water jug',
900: 'water tower',
901: 'whiskey jug',
902: 'whistle',
903: 'wig',
904: 'window screen',
905: 'window shade',
906: 'Windsor tie',
907: 'wine bottle',
908: 'wing',
909: 'wok',
910: 'wooden spoon',
911: 'wool\n woolen\n woollen',
912: 'worm fence\n snake fence\n snake-rail fence\n Virginia fence',
913: 'wreck',
914: 'yawl',
915: 'yurt',
916: 'web site\n website\n internet site\n site',
917: 'comic book',
918: 'crossword puzzle\n crossword',
919: 'street sign',
920: 'traffic light\n traffic signal\n stoplight',
921: 'book jacket\n dust cover\n dust jacket\n dust wrapper',
922: 'menu',
923: 'plate',
924: 'guacamole',
925: 'consomme',
926: 'hot pot\n hotpot',
927: 'trifle',
928: 'ice cream\n icecream',
929: 'ice lolly\n lolly\n lollipop\n popsicle',
930: 'French loaf',
931: 'bagel\n beigel',
932: 'pretzel',
933: 'cheeseburger',
934: 'hotdog\n hot dog\n red hot',
935: 'mashed potato',
936: 'head cabbage',
937: 'broccoli',
938: 'cauliflower',
939: 'zucchini\n courgette',
940: 'spaghetti squash',
941: 'acorn squash',
942: 'butternut squash',
943: 'cucumber\n cuke',
944: 'artichoke\n globe artichoke',
945: 'bell pepper',
946: 'cardoon',
947: 'mushroom',
948: 'Granny Smith',
949: 'strawberry',
950: 'orange',
951: 'lemon',
952: 'fig',
953: 'pineapple\n ananas',
954: 'banana',
955: 'jackfruit\n jak\n jack',
956: 'custard apple',
957: 'pomegranate',
958: 'hay',
959: 'carbonara',
960: 'chocolate sauce\n chocolate syrup',
961: 'dough',
962: 'meat loaf\n meatloaf',
963: 'pizza\n pizza pie',
964: 'potpie',
965: 'burrito',
966: 'red wine',
967: 'espresso',
968: 'cup',
969: 'eggnog',
970: 'alp',
971: 'bubble',
972: 'cliff\n drop\n drop-off',
973: 'coral reef',
974: 'geyser',
975: 'lakeside\n lakeshore',
976: 'promontory\n headland\n head\n foreland',
977: 'sandbar\n sand bar',
978: 'seashore\n coast\n seacoast\n sea-coast',
979: 'valley\n vale',
980: 'volcano',
981: 'ballplayer\n baseball player',
982: 'groom\n bridegroom',
983: 'scuba diver',
984: 'rapeseed',
985: 'daisy',
986: "yellow lady's slipper\n yellow lady-slipper\n Cypripedium calceolus\n Cypripedium parviflorum",
987: 'corn',
988: 'acorn',
989: 'hip\n rose hip\n rosehip',
990: 'buckeye\n horse chestnut\n conker',
991: 'coral fungus',
992: 'agaric',
993: 'gyromitra',
994: 'stinkhorn\n carrion fungus',
995: 'earthstar',
996: 'hen-of-the-woods\n hen of the woods\n Polyporus frondosus\n Grifola frondosa',
997: 'bolete',
998: 'ear\n spike\n capitulum',
999: 'toilet tissue\n toilet paper\n bathroom tissue'}
vgg16.npy:网络参数,训练好的参数模型(网上自行下载)
app.py运行预测结果: