import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt ## Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuarcy')# ax.set_ylabel('Categorical Crossentropy Loss') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) ## We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() ## We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]train_data.shape[2]) # 60000784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]test_data.shape[2]) # 10000784 ## We next change label number to a 10 dimensional vector, e.g., 1->[0,1,0,0,0,0,0,0,0,0] train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) ## start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 ## we build a three layer model, 784 -> 64 -> 10 MLP_4 = keras.models.Sequential([ keras.layers.Dense(128, input_shape=(784,),activation='relu'), keras.layers.Dense(64,activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_4.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_4.fit(train_data[:10000],train_labels[:10000], batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history['val_accuracy']在该模型中的两个隐层中加入dropout layer(保留概率设置为0.8,即rate=1-0.8=0.2)
时间: 2024-02-29 18:56:11 浏览: 17
可以在模型中加入dropout layer,来避免过拟合的问题。在该模型中,你可以在两个隐层中加入dropout layer,保留概率设置为0.8,即rate=1-0.8=0.2。这可以通过在每个隐层后添加keras.layers.Dropout(rate=0.2)来实现。例如:
MLP_4 = keras.models.Sequential([
keras.layers.Dense(128, input_shape=(784,),activation='relu'),
keras.layers.Dropout(rate=0.2),
keras.layers.Dense(64,activation='relu'),
keras.layers.Dropout(rate=0.2),
keras.layers.Dense(10,activation='softmax')
])
相关问题
from tensorflow import keras import tensorflow as tf import matplotlib.pyplot as plt import numpy as np import glob意思
这段代码是用Python编写的,它导入了一些常用的机器学习和数据处理库,包括TensorFlow、Keras、Matplotlib和NumPy。
`from tensorflow import keras`:这行代码导入了Keras库,Keras是一个高级神经网络API,它可以用于构建和训练深度学习模型。
`import tensorflow as tf`:这行代码导入了TensorFlow库,TensorFlow是一个流行的开源机器学习框架,它提供了丰富的工具和功能,用于构建和训练机器学习模型。
`import matplotlib.pyplot as plt`:这行代码导入了Matplotlib库中的pyplot模块,它提供了绘制图表和可视化数据的功能。
`import numpy as np`:这行代码导入了NumPy库,NumPy是一个用于科学计算的Python库,它提供了多维数组对象和各种数学函数。
`import glob`:这行代码导入了Python标准库中的glob模块,它用于查找文件路径名匹配的文件。在这段代码中,可能会用到glob来查找文件路径。
请注意,代码片段中的具体用法和目的可能需要更多的上下文才能确定。如果你有更详细的代码或问题,请提供更多信息,我将尽力帮助你。
import matplotlib.pyplot as plt import numpy as np
`import matplotlib.pyplot as plt` 和 `import numpy as np` 是 Python 中常用的库导入语句,用于数据可视化和数值计算。
1. `matplotlib.pyplot`: 这是 Matplotlib 库的核心模块,提供了丰富的绘图工具和接口。`plt` 是 `pyplot` 的别名,让你能够直接调用 Matplotlib 的各种绘图函数,如创建线图、散点图、直方图等。它是数据可视化的基石,常用于科学计算和数据分析中。
2. `numpy as np`: Numpy 是一个强大的数值计算库,提供了高效的多维数组对象(ndarray)以及许多数学函数,用于处理大量的结构化数据。`np` 是 `numpy` 的简写,使得在代码中可以使用 `np.array()` 创建数组,或者使用 `np.sin()`、`np.dot()` 等函数进行数学运算。
当你在代码中引入这两个库后,就可以方便地使用它们提供的功能,例如创建图表来可视化数据分布,或进行数组操作和数值计算。以下是一些示例用途:
```python
# 使用numpy创建数组
arr = np.array([1, 2, 3, 4, 5])
# 使用matplotlib绘制线图
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Sine Function')
plt.show()
```