如何使用TensorFlow构建机器学习模型
TensorFlow 是一个由谷歌开发的库,并在 2015 年开源,它能使构建和训练机器学习模型变得简单。
我们接下来要建立的模型将能够自动将公里转换为英里,在本例中,我们将创建一个能够学习如何进行这种转换的模型。我们将向这个模型提供一个 CSV (https://en.wikipedia.org/wiki/Comma-separated_values)文件作为输入,其中有 29 组已经执行过的公里和英里之间的转换,基于这些数据,我们的模型将学会自动进行这种转换。
我们将使用有监督学习算法,因为我们知道数据的输入和输出结果。并使用 Python 作为编程语言。Python 提供了一系列与机器学习相关的方便的库和工具如何。本例中所有的步骤都是使用 Google Colab 执行的。Google Colab 允许我们在浏览器上零配置地编写和执行 Python 代码。
导入必需的库
我们首先导入在我们的例子中将要使用到的库。
import tensorflow as tf import pandas as pd import seaborn as sns import matplotlib.pyplot as plt 我们将导入 Tens使用orFlow 来创建我们的机器学习模型。 我们还将导入 Pandas 库来读取包含有公里和英里转换数据的 CSV 文件。 最后,我们将导入 Seaborn 和 Matlotlib 库绘制不同的结果。 加载样例数据
我们将含有逗号分隔的值的文件(Kilometres-miles.csv)读取到我们的数据帧中。这个文件包含一系列公里和英里值的转换。我们将使用这些数据帧来训练我们的模型。你可以在这个链接(https://drive.google.com/file/d/1m63pJA-zUAA12XOCCBt3Aik9fnjrj_8s/view?usp=sharing)下载这个文件。
要从 Google ColaTeb 读取文件,你可以使用不同的方法。在本例中,我直接将 CSV 文件上传到我的 Google Colab 上的 sample_data 文件夹中,但你可以从一个 URL 中读取文件(比如,从 GitHub)。
上传到 Google Colab 的问题是,数据会在运行时重启时丢失。
数据帧是二维的大小可变的并且各种各样的表格数据。
df = pd.read_csv('/content/sample_data/Kilometres-miles.csv') df.info
示例数据信息
绘制数据帧
我们将“searborn”库的“scatterplot”导入并命名为“sns”,ns然后使用这个库来绘制上述图形。它显示了 X(公里)和 Y(英里)对应关系的图形化表示。
print("Painting the correlations") #Once we load seaborn into the session, everytime a matplotlib plot is executed, seaborn's default customizations are adorded sns.scatterplot(df['Kilometres'], df['Miles']) plt.show()
公里和英里的相关性
我们定义数据帧的输入和输出来训练模型:
X(公里)是输入,Y(英里)是输出。
print("Define input(X) and output(Y) variables") X_train=df['Kilometres'] y_train=df['Miles'] 创建神经网络
现在,让我们使用“keras.FlSequential”方法来创建一个神经网络,其中依次添加“layers”。每一个层(layer)都具有逐步提取输入数据以获得所需输出的功能。Keras 是一个用 Python 写的库,我们创建神经网络并使用不同的机器学习框架,例如 TensorFlow。
接下来,我们将使用“add”方法向模型添加一个层。
print("Creating the model") model = tf.keras.Sequential() model.add(tf.keras.layers.Dense(units=1,inputow_shape=[1])) 创建神经网络
编译模型
在训练我们的模型之前,我们将在编译步骤中添加一些额外设置。
我们将设置一个优化器和损失函数,它们会测量我们的模型的准确性。Adam 优化是一种基于第一次和第二次矩的自适应预算的随机梯度下降算法。
为此,我们将使用基于平均方差的损失函数,它测量了我们预测的平均方差。
我们的模型的目标是最小化这个函数。
print("Compiling the model") model.compile(optimizer=tf.keras.optimizers.Adam(1), loss='mean_squared_构建error') 训练模型
我们将使用“拟合(fit)”方法来训练我们的模型。首先,我们传入独立变量或输入变量(X-Kilometers)和目标变量(Y-Miles)。
另一方面,我们预测 epoch 的数值。在本例中,epoch 值是 250。一个 epoch 就是遍历一遍所提供的完整的 X 和 Y 数据。
如果 epoch 的数值越小,误差就会越大;反过来,epoch 的数值越大,则误差就会越小。 如果 epoch 的数值越大,算法的执行速度就会越慢。 print ("Training the model") epochs_机器hist = model.fit(X_train, y_train, epochs = 250)
训练模型的控制台
评估模型
现在,我们评估创建的模型,在该模型中,我们可以观察到损失(Training_loss)随着执行的遍历次数(epoch)的增多而减少,如果训练集数据有意义并且是一个足够大的组,这是合乎逻辑的。
print("Evaluating the model") print(epochs_hist.history.keys()) #graph &nb学习sp;plt.plot(epochs_hist.history['loss']) plt.title('Evolution of the error associated with the model') plt.xlabel('Epoch') plt.ylabel('Training Loss') plt.legend('Training Loss') plt.show()
从图中我模型们可以看出,用 250 次训练模型并没有多大帮助,在第 50 次遍历后,误差并没有减少。因此,训练该算法的最佳遍历数大约是 50。
进行预测
现在我们已经训练了我们的模型,我们可以使用它来进行预测。
在本例中,我们将 100 赋值给模型的输入变量,然后模型会返回预测的英里数:
kilometers = 100 predictedMiles = model.predict([kilometers]) print("The conversion from Kilometres to Mil如何es is as follows: " + str(predictedMiles))
从公里到英里的换算为 62.133785.
检查结果 milesByFormula = kilometers * 0.6214 print("The conversion from kilometers to miles using the mathematical formula&n使用bsp;is as follows:" + str(milesByFormula)) diference = milesByFormula - predictedMiles print("Prediction error:" + str(diference))
使用公式从公里到英里的换算值为:62.13999999999999。预测误差为 0.00621414
总 结
通过本例,我们了解了如何使用 TensorFlow 库来创建一个模型,这Te个模型已经学会自动将公里数转换为英里数,并且误差很小。
TensorFlow 用于执行此过程的数学非常简单。基本上,本例使用线性回归来创建模型,因为输入变量(公里数)和输出变量(英里数)是线性相关的。在机器学习中,过程中最耗时的部分通常是准备数据。
随着时间的推移,我们收获了一些经验,这些经验可以帮助我们选择最适合的算法及其设置,但一般来说,这是一项分析测试并改进的任务。
- ·2021年数据产业五大趋势预测
- ·标签: 百度
- ·标签: 晶泰控股 AI4S 药物发现 智慧解决方案
- ·Facebook新AI模型SEER实现自监督学习,LeCun大赞最有前途
- ·应对模型推理缺陷:苹果MIND团队加紧招聘AI人才
- ·标签: 奇梦岛 WAKUKU ZIYULI SIINONO
- ·标签: 小米通话 停止服务 音视频
- ·云安全日报210204:IBM MQ消息中间件产品发现执行任意代码漏洞,需要尽快升级
- ·大厂财报相继出炉,释放了4个关于AI云的信号
- ·云安全日报210312:IBM DB2数据库管理系统发现拒绝服务漏洞,需要尽快升级
- ·标签: 暖哇科技 保险AI 港交所上市 弗若斯特沙利文
- ·标签: 微信公众号 AI创作 微信公众平台 内容监管
- ·云安全日报201218:负载均衡厂商F5 BIG-IP发现跨站脚本漏洞,需要尽快升级
- ·图样图森破-Pyecharts之柱状图
- ·火山引擎发布豆包大模型1.6升级版,日均 Tokens 调用量突破30万亿!
- ·DBaaS需要数据保护的三大原因
- ·Anthropic证实:Claude Opus 4.1和Opus 4模型出现 “降智” 现象,已紧急修复!
- ·标签: 顺丰控股 速运物流 供应链 国际快递
- ·AI有声剧革命爆发!豆包推全自动多人配音系统,98%角色识别准确率,媲美专业广播剧
- ·云安全日报220211:红帽云计算应用平台发现操作系统命令执行漏洞,需要尽快升级
- ·标签: 快手 可灵AI 线上营销服务 电商业务
- ·标签: 摩尔线程 MTTS5000 全功能GPU AI芯片
- ·百度文心大模型X1.1发布:深度学习能力再升级
- ·英特尔新设软件及图形芯片两大部门 “死磕”英伟达
- ·标签: 百度智能云 DuClaw 千帆CodingPlan OpenClaw
- ·DeepSeek-V4预览版正式发布:1M 超长上下文进入全员普惠时代
- ·云安全日报210113:Adobe Photoshop和Illustrator发现任意代码执行漏洞,需要尽快升级
- ·标签: OpenAI AWS ChatGPT 英伟达
- ·标签: OpenAI 谷歌 Albert Lee ChatGPT
- ·标签: Claude Code Anthropic 中国时区检测 AI实验室域名
- ·谷歌即将推出 “AI 模式” 作为默认搜索体验,允许用户在初次搜索后与 AI 继续对话
- ·字节跳动发布全新开源长文本处理模型 Seed-OSS-36B
- ·云计算开发:Python练习实例-求高度
- ·标签: 章鱼动力 SynapX K3 PhysicalAGI
- ·主流聊天机器人传播虚假信息风险加剧,研究显示情况堪忧
- ·标签: 大宇资讯 光聚晶电 半导体 游戏IP
- ·Meta 推出小型推理模型MobileLLM-R1,企业应用向 “小型 AI” 转型
- ·AWS发布针对Amazon EC2的Apple macOS实例
- ·标签: 米哈游 Varsapura 蔡浩宇 HoYoverse
- ·标签: 瑞云冷链 冷运宝 数字化冷链 跨境冷链
- ·IDC下调中国政务云整体市场5年复合增长率至16.14%
- ·2021年人工智能在网络安全方面的发展趋势
- ·沙利文全栈AI云服务报告:阿里云占比40.1%,超第二至第四名总和
- ·标签: 利亚德
- ·美团发布 LongCat-Video 视频生成模型,开实现时序一致性与物理运动合理性
- ·机器人“索菲亚”现状,状态跟正常人无异,交流也没有障碍
