如何使用Tensorflow在Python中准备IMDB数据集进行训练?

如何使用Tensorflow在Python中准备IMDB数据集进行训练?

Tensorflow是Google提供的机器学习框架。它是一个开源框架,结合Python使用,用于实现算法、深度学习应用等等。它用于研究和生产目的。它具有优化技术,有助于快速执行复杂的数学运算。

可以使用以下代码安装Windows上的“tensorflow”包 –

pip install tensorflow

Tensor是在TensorFlow中使用的数据结构。它有助于将流程图中的边连接起来。这个流程图被称为“数据流图”。张量只是多维数组或列表。

“IMDB”数据集包含超过5万部电影的评论。这个数据集通常与自然语言处理相关的操作一起使用。

我们使用Google Colaboratory来运行下面的代码。Google Colab或Colaboratory可以在浏览器中运行Python代码,无需任何配置,并可自由访问GPU(图形处理单元)。Colaboratory是建立在Jupyter Notebook之上的。

以下是IMDB数据集的代码片段 –

更多Python相关文章,请阅读:Python 教程

例子

def vectorize_text(text, label):
    text = tf.expand_dims(text, −1)
    return vectorize_layer(text), label

text_batch, label_batch = next(iter(raw_train_ds))
first_review, first_label = text_batch[0], label_batch[0]
print("Review is ", first_review)
print("Label is ", raw_train_ds.class_names[first_label])
print("Vectorized review is ", vectorize_text(first_review, first_label))

print("1222 −−−> ",vectorize_layer.get_vocabulary()[1222])
print(" 451 −−−> ",vectorize_layer.get_vocabulary()[451])
print('Vocabulary size: {}'.format(len(vectorize_layer.get_vocabulary())))

train_ds = raw_train_ds.map(vectorize_text)
val_ds = raw_val_ds.map(vectorize_text)
test_ds = raw_test_ds.map(vectorize_text)

代码来源: - https://www.tensorflow.org/tutorials/keras/text_classification

输出

回顾tf.Tensor(b'《圣诞节声音,致命夜晚5》是系列中最后一部,就像第4部一样,除了标题和它是圣诞恐怖电影之外,与前三部没有关系。<br /><br />除了对无知的人来说,这里有一些显而易见的事情在发生......米基·鲁尼扮演一个名为乔·佩托的玩具制造商,而他的可怕儿子的名字是皮诺。有人想起来了吗?现在,一个叫德里克的小男孩在一个晚上听到门响,开门后发现门口有一个礼物。尽管上面写着“圣诞节前别开”,他还是开始拆礼物,但被他的父亲阻止,并让他回房睡觉,然后他自己打开了礼物。里面是一个长有圣诞老人的手臂和头的小红球,而后者继续杀死了父亲。糟糕,也许他应该让一切都过去了。当然,德里克因为他从楼梯上看着这一切而受到了心理创伤,但他并没有变成一名杀人圣诞老人,他只是不再说话了。<br /><br />有一个神秘的陌生人在四处潜伏,似乎对乔·佩托制造的玩具非常感兴趣。当德里克的妈妈带他去商店为他找礼物以使他走出他的创伤时,我们甚至看到他正在购买一堆玩具。那这个人究竟在做什么呢?嗯,我们不确定,但他似乎一直在拆卸这些玩具,看看是什么使它们运转。他确实阻止了他的房东将他赶出来,答应在第二天用现金支付他,并给他的孩子送了一个“拉里幼虫”玩具,但当然“拉里”并不是一个好玩具,从盒子里出来坐车后,情况就不太好了。<br /><br />总之,最终乔·佩托和皮诺在进行的事情显然被揭示了,就像古老的故事一样,皮诺不是一个“真正的男孩”。皮诺可能更加烦躁和淘气,因为他患有“光滑的塑料裆部”,这可能解释了他的邪恶行为。潜伏的陌生人的身份也被揭示了,甚至有一种快乐的做法结束。 Whee。<br /><br />比第4部提高了一步,但提高不大。再次,布莱恩·尤兹纳(Brian Yuzna)和尖叫着的疯狂乔治(Screaming Mad George)参与其中,因此有一些不错的特效,但不足以使这成为伟大的电影。第四部的一些残留物也在周围挂着,像克林特·霍华德和尼斯·亨特,但那并没有什么区别。总之,现在我已经将整个系列看完了。现在,如果我能把其中一些东西摆脱我的大脑就好了。评分为5分中的4分。', shape=(), dtype=string)
标签是neg
向量化的评论是(<tf.Tensor: shape=(1, 250), dtype=int64, numpy=
array([[1287, 313, 2380, 313, 661, 7, 2, 52, 229, 5, 2,
200, 3, 38, 170, 669, 29, 5492, 6, 2, 83, 297,
549, 32, 410, 3, 2, 186, 12, 29, 4, 1, 191,
510, 549, 6, 2, 8229, 212, 46, 576, 175, 168, 20,
1, 5361, 290, 4, 1, 761, 969, 1, 3, 24, 935,
2271, 393, 7, 1, 1675, 4, 3747, 250, 148, 4, 112,
436, 761, 3529, 548, 4, 3633, 31, 2, 1331, 28, 2096,
3, 2912, 9, 6, 163, 4, 1006, 20, 2, 1, 15,
85, 53, 147, 9, 292, 89, 959, 2314, 984, 27, 762,
6, 959, 9, 564, 18, 7, 2140, 32, 24, 1254, 36,
1, 85, 3, 3298, 85, 6, 1410, 3, 1936, 2, 3408,
301, 965, 7, 4, 112, 740, 1977, 12, 1, 2014, 2772,
3, 4, 428, 3, 5177, 6, 512, 1254, 1, 278, 27,
139, 25, 308, 1, 579, 5, 259, 3529, 7, 92, 8981,
32, 2, 3842, 230, 27, 289, 9, 35, 2, 5712, 18,
27, 144, 2166, 56, 6, 26, 46, 466, 2014, 27, 40,
2745, 657, 212, 4, 1376, 3002, 7080, 183, 36, 180, 52,
920, 8, 2, 4028, 12, 969, 1, 158, 71, 53, 67,
85, 2754, 4, 734, 51, 1, 1611, 294, 85, 6, 2,
1164, 6, 163, 4, 3408, 15, 85, 6, 717, 85, 44,
5, 24, 7158, 3, 48, 604, 7, 11, 225, 384, 73,
65, 21, 242, 18, 27, 120, 295, 6, 26, 667, 129,
4028, 948, 6, 67, 48, 158, 93, 1]])>, <tf.Tensor: shape=(), dtype=int32, numpy=0>)
1222--->粘
451--->已经
词汇量大小: 10000

解释

  • 定义了一个名为“vectorize_text”的函数,基本上将给定的文本转换为数字,以便计算机能够理解。

  • 使用IMDB数据集训练模型。

  • 在控制台上显示了一份评论、标签和向量化数据的样本。

  • 训练数据、测试数据和验证数据都被向量化了。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程