400-123-4657

行业资讯 分类
tensorflow中SGDM优化器用法发布日期:2024-05-06 浏览次数:
以下是使用TensorFlow 2在鸢尾花数据集上比较SGDM优化器和Adam优化器的代码和结果: ```python import tensorflow as tf from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # 加载数据集并进行预处理 iris=load_iris() X=iris.data y=iris.target X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.2, random_state=42) scaler=StandardScaler() X_train=scaler.fit_transform(X_train) X_test=scaler.transform(X_test) # 定义模型 model=tf.keras.models.Sequential([ tf.keras.layers.Dense(10, activation='relu', input_shape=X_train.shape[1:]), tf.keras.layers.Dense(3, activation='softmax') ]) # 编译模型并使用SGDM优化器进行训练 sgdm_optimizer=tf.keras.optimizers.SGD(learning_rate=0.01, momentum=0.9) model.compile(loss='sparse_categorical_crossentropy', optimizer=sgdm_optimizer, metrics=['accuracy']) sgdm_history=model.fit(X_train, y_train, epochs=50, validation_data=(X_test, y_test), verbose=0) # 编译模型并使用Adam优化器进行训练 adam_optimizer=tf.keras.optimizers.Adam(learning_rate=0.01) model.compile(loss='sparse_categorical_crossentropy', optimizer=adam_optimizer, metrics=['accuracy']) adam_history=model.fit(X_train, y_train, epochs=50, validation_data=(X_test, y_test), verbose=0) # 绘制训练过程的准确率变化曲线 import matplotlib.pyplot as plt plt.plot(sgdm_history.history['accuracy'], label='SGDM') plt.plot(adam_history.history['accuracy'], label='Adam') plt.title('Accuracy Comparison between SGDM and Adam Optimizers') plt.xlabel('Epoch') plt.ylabel('Accuracy') plt.legend() plt.show() ``` 运行上述代码后,将会得到一个准确率变化曲线的图表,该图表将SGDM优化器和Adam优化器的训练过程准确率的变化进行了对比。
Copyright © 2012-2018 天宏-天宏娱乐国际科技集团 版权所有 非商用版本

琼ICP备xxxxxxxx号

平台注册入口