我尝试使用以下代码训练带有gym和tflearn的强化学习代理:
from tflearn import *
import gym
import numpy as np
env = gym.make('CartPole-v0')
x = []
y = []
max_reward = 0
for i in range(1000):
env.reset()
while True:
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
break
if reward >= max_reward:
x.append(observation)
y.append(np.array([action]))
x = np.asarray(x)
y = np.asarray(y)
net = input_data((None,4))
net = fully_connected(net,8,'softmax')
net = fully_connected(net,16,'softmax')
net = fully_connected(net,32,'softmax')
net = fully_connected(net,64,'softmax')
net = fully_connected(net,128,'softmax')
net = fully_connected(net,64,'softmax')
net = fully_connected(net,32,'softmax')
net = fully_connected(net,16,'softmax')
net = fully_connected(net,8,'softmax')
net = fully_connected(net,4,'softmax')
net = fully_connected(net,2,'softmax')
net = fully_connected(net,1)
net = regression(net,optimizer='adam',learning_rate=0.01,loss='categorical_crossentropy',batch_size=1)
model = DNN(net)
model.fit(x,y,10)
model.save('saved/model.tflearn')
问题是,当模型训练时,损失总是0.0
。有人可以帮我解决这个问题吗?