当我使用ATIS(航空旅行信息系统)数据集(http://lisaweb.iro.umontreal.ca/transfert/lisa/users/mesnilgr/atis/)来研究递归神经网络时。我对它的结构感到困惑。
例如,在使用data = pickle.load(open("./dataset/atis.fold0.pkl", "rb"),encoding='iso-8859-1')
加载atis.fold0.pkl后,我使用print (np.shape(data_train))
获取(4,)
。我认为数据[0]是训练集,数据[1]是有效集,数据[2]是测试集,数据[3]是字典。
但是当我使用print(np.shape(data[0]))
时,我会得到(3, 3983)
。我想知道为什么我会得到3行?这三行之间的区别是什么。
文件atis.fold0.pkl,atis.fold1.pkl,atis.fold2.pkl,atis.fold3.pkl,atis.fold4.pkl之间的区别是什么?
答案 0 :(得分:2)
f = gzip.open(filename, 'rb')
try:
train_set, valid_set, test_set, dicts = pickle.load(f, encoding='latin1')
except:
train_set, valid_set, test_set, dicts = pickle.load(f)
print np.shape(train_set)
每个泡菜都可以分为培训,验证,测试和字典。当您看到字典元素时,它们包含
words2idx
tables2idx
labels2idx
现在测试以下代码
for i in train_set:
print len(i[0])
它将返回相同长度的文件。 所以第一个元素是单词.Second是tables2idx,第三个是插槽填充的最终结果(labels2idx)
使用dict解密id,你会得到意思。