如何使用 Python 和 TensorFlow 训练基于 Stack Overflow 问题数据集的模型?
TensorFlow 是 Google 提供的一个机器学习框架。它是一个开源框架,与 Python 结合使用以实现算法、深度学习应用程序等等。它用于研究和生产目的。
它拥有优化技术,有助于快速执行复杂的数学运算。
这是因为它使用了 NumPy 和多维数组。这些多维数组也称为“张量”。该框架支持与深度神经网络一起工作。它具有高度可扩展性,并附带许多流行的数据集。它使用 GPU 计算并自动管理资源。它附带大量机器学习库,并且得到良好的支持和记录。该框架能够运行深度神经网络模型、训练它们以及创建预测相应数据集相关特征的应用程序。
可以使用以下代码行在 Windows 上安装“tensorflow”包:
pip install tensorflow
张量是 TensorFlow 中使用的数据结构。它有助于连接流图中的边。此流图称为“数据流图”。张量只不过是多维数组或列表。可以使用三个主要属性来识别它们:
秩 - 它表示张量的维度。可以理解为张量的阶数或已定义的张量中的维度数。
类型 - 它表示与张量元素关联的数据类型。它可以是一维、二维或 n 维张量。
形状 - 它指的是行数和列数的组合。
我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 是建立在 Jupyter Notebook 之上的。
示例
以下是代码片段:
print("A bag-of-words linear model is built to train the stackoverflow dataset") binary_model = tf.keras.Sequential([layers.Dense(4)]) binary_model.compile( loss=losses.SparseCategoricalCrossentropy(from_logits=True), optimizer='adam', metrics=['accuracy']) history = binary_model.fit( binary_train_ds, validation_data=binary_val_ds, epochs=10)
代码来源 - https://tensorflowcn.cn/tutorials/load_data/text
输出
A bag-of-words linear model is built to train the stackoverflow dataset Epoch 1/10 188/188 [==============================] - 4s 19ms/step - loss: 1.2450 - accuracy: 0.5243 - val_loss: 0.9285 - val_accuracy: 0.7645 Epoch 2/10 188/188 [==============================] - 1s 3ms/step - loss: 0.8304 - accuracy: 0.8172 - val_loss: 0.7675 - val_accuracy: 0.7895 Epoch 3/10 188/188 [==============================] - 1s 3ms/step - loss: 0.6615 - accuracy: 0.8625 - val_loss: 0.6824 - val_accuracy: 0.8050 Epoch 4/10 188/188 [==============================] - 1s 3ms/step - loss: 0.5604 - accuracy: 0.8833 - val_loss: 0.6291 - val_accuracy: 0.8125 Epoch 5/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4901 - accuracy: 0.9034 - val_loss: 0.5923 - val_accuracy: 0.8210 Epoch 6/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4370 - accuracy: 0.9178 - val_loss: 0.5656 - val_accuracy: 0.8255 Epoch 7/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3948 - accuracy: 0.9270 - val_loss: 0.5455 - val_accuracy: 0.8290 Epoch 8/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3601 - accuracy: 0.9325 - val_loss: 0.5299 - val_accuracy: 0.8295 Epoch 9/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3307 - accuracy: 0.9408 - val_loss: 0.5177 - val_accuracy: 0.8335 Epoch 10/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3054 - accuracy: 0.9472 - val_loss: 0.5080 - val_accuracy: 0.8340
解释
神经网络是使用“Sequential” API 创建的。
对于已以“二进制”格式向量化的数据,会训练一个词袋模型,它是一个线性模型。
广告