给初学者:开始构建你的神经网络模型

分两步构建一个神经网络模型:
第一步,配置模型的层。人工神经网络基本的构建块就是层,每个层包含一个或多个LTU,也叫线性阈值单元。LTU是一个人工神经单元,输入和输出都是数字,并且每个输入的连接都有一个对应的权重。LTU会加权求和所有的输入,然后根据求值结果应用一个信号函数。下面使用keras.Sequential类配置层:

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10)
])

大部分深度学习模型都是由一系列的简单的层串联在一起组成的。这些层都有一些参数需要在模型的训练过程中学习和优化。
我们来解释上面的模型,该模型包含三层:
第一层是 keras.layers.Flatten(平坦层),作用是把输入的数据转换成一个一维数组,flatten,就是使之平坦的意思。这层没有参数需要学习,只是重构数据。这层接受的数据必须是28X28的二维数组。
第二和第三是稠密层 keras.layers.Dense。Dense层是一种全连接层,和前边的输入、后边的输出全部连接。这种层往往用于分析输入数据,提取输入数据之间的联系。第一个Dense层有128个nodes(神经元 neurons),并且使用修正线性单元(relu)作为激活函数;第二个Dense层(也即最后一层)包含10个nodes,每个node将输出一个评估值,显示输入数据应该归为那个类别。

第二步,编辑模型(compile model)
在模型开始训练之前,我们要对模型做必要的设置,这就是compile model,设置往往包括如下内容:
1、添加损失函数Loss。Loss用来衡量训练期间模型的精确度。我们要尽可能让这个函数最小化,从而保证模型向着正确的方向发展。
2、添加优化器Optimizer。Optimizer定义了,根据输入数据和Loss,模型该怎样改进和优化。
3、度量器Metrics 。Metrics 监视训练和测试过程。往往用accuracy精度来描述。下面是配置代码:

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

至此,神经网络模型构建完毕。接下来就是训练,预测,等等。

    原文作者:C/C++/C#/Python/AI
    原文地址: https://blog.csdn.net/arzhh/article/details/105555340
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞