赞
踩
在这个实验室里,我们将使用Numpy构建一个小型神经网络。它将与您在Tensorflow中实现的“咖啡烘焙”网络相同。
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('./deeplearning.mplstyle')
import tensorflow as tf
from lab_utils_common import dlc, sigmoid
from lab_coffee_utils import load_coffee_data, plt_roast, plt_prob, plt_layer, plt_network, plt_output_unit
import logging
logging.getLogger("tensorflow").setLevel(logging.ERROR)
tf.autograph.set_verbosity(0)
数据集
这是与前一个实验室相同的数据集。
X,Y = load_coffee_data();
print(X.shape, Y.shape)
让我们在下面绘制咖啡烘焙数据。这两个功能是以摄氏度为单位的温度和以分钟为单位的持续时间。在家烤咖啡建议时间最好保持在12到15分钟之间,而温度应该在175到260摄氏度之间。当然,随着温度的升高,持续时间应该会缩短。
plt_roast(X,Y)
标准化数据
为了与之前的实验室相匹配,我们将对数据进行规范化。请参考该实验室了解更多详细信息
print(f"Temperature Max, Min pre normalization: {np.max(X[:,0]):0.2f}, {np.min(X[:,0]):0.2f}")
print(f"Duration Max, Min pre normalization: {np.max(X[:,1]):0.2f}, {np.min(X[:,1]):0.2f}")
norm_l = tf.keras.layers.Normalization(axis=-1)
norm_l.adapt(X) # learns mean, variance
Xn = norm_l(X)
print(f"Temperature Max, Min post normalization: {np.max(Xn[:,0]):0.2f}, {np.min(Xn[:,0]):0.2f}")
print(f"Duration Max, Min post normalization: {np.max(Xn[:,1]):0.2f}, {np.min(Xn[:,1]):0.2f}")
上面的这部分跟上一篇文章一样
Numpy模型(Numpy中的正向道具)
让我们构建讲座中描述的“咖啡烘焙网络”。有两层Sigmoid激活。
如讲座中所述,可以使用NumPy构建自己的密集层。然后可以利用这一点来构建多层神经网络。
在第一个可选实验室中,您在NumPy和Tensorflow中构建了一个神经元,并注意到它们的相似性。一个层只包含多个神经元/单元。如讲座中所述,可以使用for循环访问层中的每个单元(j),并对该单元(W[:,j])执行权重的点积,并对单元(b[j])的偏差求和以形成z。然后可以将激活函数g(z)应用于该结果。让我们在下面尝试构建一个“密集层”子程序。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。