问题遇到的现象和发生背景
nnictl create --config exp_config.yaml
然后去他给的链接去查看运行结果,结果都运行失败了,不知道哪里出了问题
用代码块功能插入代码,请勿粘贴截图
# -*- coding: utf-8 -*-
"""
Created on Mon Oct 10 20:41:44 2022
@author: fhm
"""
from tensorflow.keras import layers, optimizers, models
from tensorflow.keras.utils import to_categorical
from keras.datasets import mnist
from sklearn.metrics import accuracy_score
import nni
# 获取数据
def load_data():
(train_data, train_labels), (test_data, test_labels) = mnist.load_data() # 载入数据集
# 数据集的归一化
train_data = train_data.reshape((60000, 28, 28, 1))
train_data = train_data.astype('float32') / 255
test_data = test_data.reshape((10000, 28, 28, 1))
test_data = test_data.astype('float32') / 255
# 目标值的独热编码
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
return train_data, train_labels, test_data, test_labels
def get_default_parameters():
params = {'lr': 0.1}
return params
# 搭建模型与模型编译
def get_model(params):
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
lr = params.get('lr')
model.compile(optimizer=optimizers.Adam(lr), loss='categorical_crossentropy', metrics=['accuracy'])
return model
# 模型训练
def run(x_train, y_train, x_test, y_test, modelss):
modelss.fit(x_train, y_train, epochs=1, batch_size=10000)
y_pred = modelss.predict(x_test)
yp, yt = [], []
for i in range(len(y_pred)):
yp.append(y_pred[i].argmax())
yt.append(y_test[i].argmax())
score = accuracy_score(yt, yp)
print(score)
nni.report_final_result(score)
# 主程序
if __name__ == '__main__':
# 获取数据集
x_train, y_train, x_test, y_test = load_data()
# 指定超参数来源
RECEIVED_PARAMS = nni.get_next_parameter()
# 获取默认超参数
PARAMS = get_default_parameters()
# 参数更新
PARAMS.update(RECEIVED_PARAMS)
# 给模型超参数赋值
model = get_model(PARAMS)
# 开始超参寻优
run(x_train, y_train, x_test, y_test, model)
运行结果及报错内容
可以看最后一个图里,succeeded=0,failed=29,还有一个在运行中。右边也没有出现数据
我的解答思路和尝试过的方法
搜了一圈没看过相关错误贴
我想要达到的结果
成功运行