深度学习入门实践-手写数字识别
代码如下,是在aistudio上运行的,但是不知道怎么回事运行不了
```python
#模型训练
with fluid.dygraph.guard():
model=multilayer_perceptron() #模型实例化
model.train() #训练模式
opt=fluid.optimizer.Adam(learning_rate=fluid.dygraph.ExponentialDecay(
learning_rate=0.01,
decay_steps=4000,
decay_rate=0.1,
staircase=True
),parameter_list=model.parameters())
epochs_num=30 #选代次数
for pass_num in range(epochs_num):
lr = opt.current_step_lr()
print("learning-rate:",lr)
for batch_id,date in enumerate(train_reader()):
images=np.array([x[0].reshape(1,28,28) for x in data],np.float32)
labels = np.array([x[1] for x in data]).astype('int64')
labels = labels[:,np.newaxis]
image=fluid.dygraph.to_variable(images)
label=fluid.dygraph.to_variable(labels)
predict=model(image) #预测
#print(predict)
loss=fluid.layers.cross_entropy(predict,label)
avg_loss=fluid.layers.mean(loss)#获取loss
acc=fluid.layers.accuracy(predict,label)#计算精度
avg_loss.backward()
opt.minimize(avg_loss)
model.clear_gradients()
all_train_iter = 0
all_train_iters = []
all_train_costs = []
a1l_train_accs = []
all_train_iter=all_train_iter+256
all_train_iters.append(all_train_iter)
all_train_costs.append(loss.numpy()[0])
a1l_train_accs.append(acc,numpy()[0])
if batch_idlse and batch_id%50==0:
prinf("train_pass:{},batch_id:{},train_loss:{},train_acc:{}",format(pass_num,batch_id,avg_loss.numpy(),acc.numpy()))
然后报错;
--------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/tmp/ipykernel_207/4092028484.py in
41 all_train_iters.append(all_train_iter)
42 all_train_costs.append(loss.numpy()[0])
---> 43 a1l_train_accs.append(acc,numpy()[0])
44
45
TypeError: 'module' object is not callable
```
以上代码有几个问题需要修正一下:
第7行:multilayer_perceptron()未定义,需要先定义模型;
第17行:date未定义,应该是data;
第23行:labels未定义,应该是label;
第38行:prinf应该是print。
如果以上回答对您有所帮助,望采纳~谢谢