3 import torch.nn.functional
as F
4 from torch.autograd
import Variable
9 from rospkg
import RosPack
12 ACTIONS = [(-0.6, 0.2), (0.6, 0.2), (0, 0.2)]
13 ACTION_COUNT = len(ACTIONS)
17 LASER_SAMPLE_COUNT = 8
20 MODEL_FILENAME = os.path.join(RosPack().get_path(
21 "reinforcement_learning"),
"q_learning.to")
29 DISCOUNT_FACTOR = 0.99
31 MAX_EPISODE_LENGTH = 500
37 LEARNING_RATE = 0.0001
48 super(NeuralQEstimator, self).
__init__()
49 self.
fc1 = nn.Linear(LASER_SAMPLE_COUNT, 64)
50 self.
fc2 = nn.Linear(64, 32)
51 self.
fc3 = nn.Linear(32, ACTION_COUNT)
54 x = F.relu(self.
fc1(x))
55 x = F.relu(self.
fc2(x))
59 self.load_state_dict(torch.load(MODEL_FILENAME))
60 rospy.loginfo(
"Model parameters loaded.")
63 torch.save(self.state_dict(), MODEL_FILENAME)