目录
一、TensorFlow训练神经网络
1、示例
有一个输入x,然后第一个隐藏层有25个单元,第二个隐藏层有15个单元,然后是一个输出单元。
import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense
model = Sequential([
Dense(units = 25, activation = 'sigmoid'),
Dense(units = 12, activation = 'sigmoid'),
Dense(units = 1, activation = 'sigmoid')
])
from tensorflow.keras.losses import BinaryCrossentropy #二元交叉熵损失函数
model.compile(loss=BinaryCrossentropy)
model.fit(X,Y, epochs = 100)
第一步让TensorFlow按顺序将神经网络的三层串联起来。第二步是让TensorFlow编译模型,要求编译模型的关键步骤是指定要使用的损失(Loss)函数,在示例中,使用二元交叉熵损失函数。第三步是调用fit函数,它使用在步骤二中指定的损失函数来拟合第一步中指定的模型到数据集x,y。
在TensorFlow中,fit()
函数是用于训练模型的主要函数之一。它的作用是训练一个模型,使其能够对未知的数据进行预测。在训练过程中,fit()
函数会自动进行反向传播和梯度下降等优化操作,以最小化模型的损失函数。
fit()
函数的输入参数包括训练数据、标签、训练轮数、批量大小、验证数据等等。它支持多种常见的优化器,例如随机梯度下降(SGD)、Adam、Adagrad、Adadelta等等,以及多种损失函数,例如均方误差、交叉熵等等。在训练过程中,fit()
函数会输出训练损失、验证损失和训练准确率等指标,以便我们评估模型的性能。
fit()
函数是TensorFlow中很常用的一个函数,它简化了模型训练的流程,使得用户可以更加方便地进行模型训练和优化。
在TensorFlow中,fit函数的epoch参数指的是整个训练数据集在神经网络中重复训练的次数。一个epoch等价于在整个数据集上训练一次。例如,如果一个数据集中有100个样本,将epoch设置为10,那么神经网络将在这100个样本上训练10次。在每个epoch之后,算法会用新的样本来更新模型的参数,以提高其性能和准确性。通常,epoch越大,模型的训练时间越长,但也会获得更好的训练效果。
Sequential() 告诉tensorflow 如何去计算
model.compile() 选择合适的函数来降低代价
2、模型训练细节
训练逻辑回归模型步骤:
1)、指定如何在给定输入特征x,以及参数w和b的情况下计算输出。
2)、指定损失函数和代价函数。
3)、使用一种特定的梯度下降算法来最小化w和b的代价函数J,以将其作为参数w和b的函数最小化。
notes:
代价函数是参数w和b的函数,是平均计算损失函数的总体m个训练示例的平均值,m个训练样例,,到,。约定损失函数是学习算法输出和在单个训练样例上计算真实标签,而代价函数J是在整个训练集上计算的损失函数的平均值。
使用梯度下降降代价J作为参数的函数最小化,其中w更新为
b更新为