网站怎么做跟踪链接,医院网站建设计划,运营好网站,济南网络运营公司原文#xff1a;towardsdatascience.com/implementing-neural-networks-in-tensorflow-and-pytorch-3c1f097e412a 欢迎来到我们**深度学习图解**系列的实用实施指南。在这个系列中#xff0c;我们将弥合理论与实践之间的差距#xff0c;将之前文章中探讨的神经网络概念生动地…原文towardsdatascience.com/implementing-neural-networks-in-tensorflow-and-pytorch-3c1f097e412a欢迎来到我们**深度学习图解**系列的实用实施指南。在这个系列中我们将弥合理论与实践之间的差距将之前文章中探讨的神经网络概念生动地呈现出来。深度学习图解记得我们之前讨论的用于预测冰淇淋收入的简单神经网络吗我们将使用 TensorFlow 构建它这是一个创建神经网络的强大工具。深度学习图解第二部分神经网络是如何学习的而且关键是我们将在不到 5 分钟内用 27 行代码完成**让我们首先从什么是TensorFlow**开始TensorFlow 是一个构建和部署机器学习应用的全面生态系统包括工具、库和社区资源。由谷歌开发它旨在灵活高效能够在从 CPU 到 GPU 甚至专门的硬件如 TPU 的各种平台上运行。TensorFlow 这个名字来源于其核心概念张量流。张量即多维数组在训练和推理过程中通过计算图流动。好的让我们开始构建我们的神经网络。该模型的目标是根据两个特征温度和星期几来预测每日冰淇淋收入。我们将逐步进行解释每个过程组件。第 1 步数据准备首先我们将翻译之前使用的冰淇淋销售数据…https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/19e02e40d292b146f3fc8ac5f057fc74.png…转换成适合我们神经网络的形式importnumpyasnp# Dataday[2,6,1,3,2,5,7,4,3,1]temperature[22,33,20,25,24,30,35,28,26,21]revenue[1.51,2.22,1.37,1.77,1.64,2.04,2.42,1.90,1.75,1.45]# Combine day and temperature into a single feature arrayX_trainnp.column_stack((day,temperature))y_trainnp.array(revenue)这将创建我们的输入特征X_train…https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/06b96947e8e946c20301d669683b9efc.png…以及目标值y_trainhttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fe4cd534072657bf13c0bdad7e97003d.png第 2 步标准化数据接下来我们将标准化我们的数据。标准化是一个关键的预处理步骤它将特征转换为具有零均值和标准差为 1 的形式。fromsklearn.preprocessingimportStandardScaler# Standardize the featuresscalerStandardScaler()X_train_scaledscaler.fit_transform(X_train)这确保了所有特征在模型中平等地贡献提高训练过程中的收敛速度和稳定性。第 3 步构建神经网络在这一步我们定义我们的神经网络模型。我们之前决定该架构由一个包含两个神经元和一个输出神经元的隐藏层组成所有这些神经元都使用 ReLU 激活函数。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4fe51fbf39987a931883fd9acb7c3edf.png让我们坚持这个相同的架构并将其翻译成代码。我们使用 TensorFlow 的 Keras API 构建我们的神经网络。fromtensorflow.keras.modelsimportSequentialfromtensorflow.keras.layersimportDense# Initialize the modelmodelSequential()# Add hidden layer - 2 neurons with the ReLU activation function with 2 inputsmodel.add(Dense(2,input_dim2,activationrelu))# Add output layer - 1 neuron with the ReLU activation functionmodel.add(Dense(1,activationrelu))Sequential模型允许我们构建层堆叠。Dense层是完全连接层其中每一层的每个神经元都与下一层的每个神经元相连。第 4 步编译和训练模型在训练之前我们需要编译我们的模型# Compile the modelmodel.compile(optimizeradam,lossmean_squared_error)编译是一个关键步骤它配置了学习过程。在这里我们指定优化器adam自适应动量估计它在训练过程中调整学习率。损失函数均方误差MSE它衡量预测值与实际值之间平均平方差的度量。_ 注意在这里我们使用了 Adam 优化器但我们可以使用任何其他合理的优化算法。这里列出了我们可以在 TensorFlow 中使用的所有优化算法。同样我们可以在这里使用定义的任何损失函数。_现在我们可以训练我们的模型# Train the modelhistorymodel.fit(X_train_scaled,y_train,epochs100,verbose1)fit方法是实际学习发生的地方。我们指定输入特征X_train_scaled、目标值y_train和训练周期数epochs。verbose参数控制训练过程中的输出级别。我们可以可视化训练过程importmatplotlib.pyplotasplt# Plot training loss over epochsplt.plot(history.history[loss])plt.title(Model Training Loss)plt.xlabel(Epochs)plt.ylabel(Loss)plt.show()https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/aa0776e8958c7037e4b8bdb92c56a93d.png此图说明了我们的损失预测误差随时间如何降低从而提供了对学习过程的洞察。第 5 步进行预测最后我们可以使用我们的训练模型进行预测fromsklearn.metricsimportmean_squared_error# Make predictions on the training datapredictionsmodel.predict(X_train_scaled)print(Predicted Revenues on Training Data:,predictions)https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4f296fc1a2eaae65f9fe4a49ed3743d8.png在这里我们使用我们的训练模型根据输入特征预测冰淇淋销量。如果我们想看看预测的准确性如何我们可以使用 MSE 来衡量我们模型的准确性。# Calculate the Mean Squared Errormsemean_squared_error(y_train,predictions)print(Mean Squared Error on Training Data:,mse)https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/37d15100efb65899f0674d578bc8555e.png均方误差MSE并没有像我们希望的那样低但没关系。这是一个非常基础的神经网络整个目的就是增加复杂性和调整架构以提高我们的结果。尽管这个例子使用了简单的数据集和模型架构但我们所涵盖的原则为更复杂的神经网络应用奠定了基础。随着我们继续在深度学习中的旅程我们将遇到更复杂的架构和更大的数据集但基本过程保持不变。奖励PyTorch现在我们已经看到了如何在 TensorFlow 中实现我们的模型让我们看看如何使用另一个强大的框架PyTorch 来达到相同的结果。PyTorch 是由 Facebook 的 AI 研究实验室开发的以其灵活性和效率而闻名使其成为热门选择之一。importnumpyasnpimporttorchimporttorch.nnasnnimporttorch.optimasoptimfromsklearn.preprocessingimportStandardScalerimportmatplotlib.pyplotasplt# Dataday[2,6,1,3,2,5,7,4,3,1]temperature[22,33,20,25,24,30,35,28,26,21]revenue[1.51,2.22,1.37,1.77,1.64,2.04,2.42,1.90,1.75,1.45]# Convert to numpy arrayXnp.array(list(zip(day,temperature)),dtypenp.float32)ynp.array(revenue,dtypenp.float32)# Standardize the featuresscalerStandardScaler()X_scaledscaler.fit_transform(X)# Convert data to PyTorch tensorsX_tensortorch.tensor(X_scaled,dtypetorch.float32)y_tensortorch.tensor(y,dtypetorch.float32).view(-1,1)# Build the neural networkclassIceCreamSalesModel(nn.Module):def__init__(self):super(IceCreamSalesModel,self).__init__()self.hiddennn.Linear(2,2)self.outputnn.Linear(2,1)self.relunn.ReLU()defforward(self,x):xself.relu(self.hidden(x))xself.output(x)returnx modelIceCreamSalesModel()# Define loss function and optimizercriterionnn.MSELoss()optimizeroptim.Adam(model.parameters(),lr0.01)# Train the modelnum_epochs100losses[]forepochinrange(num_epochs):# Forward passpredictionsmodel(X_tensor)losscriterion(predictions,y_tensor)losses.append(loss.item())# Backward pass and optimizationoptimizer.zero_grad()loss.backward()optimizer.step()# Plot training lossplt.plot(losses)plt.xlabel(Epochs)plt.ylabel(Loss)plt.title(Training Loss)plt.show()# Make predictionswithtorch.no_grad():predictionsmodel(X_tensor)print(Predicted Revenue:,predictions.numpy())# Evaluate the modelmse_valuecriterion(predictions,y_tensor).item()print(Mean Squared Error:,mse_value)就这些了我们已经学习了如何使用 TensorFlow 和 PyTorch 实现一个简单的神经网络来预测冰淇淋销量。在下一篇文章中我们将介绍如何在两个框架中实现卷积神经网络CNN。如往常一样欢迎您通过 LinkedIn 联系我提出任何评论或问题注意除非特别说明所有图片均为作者所有。