elements of state_batch list are state. They are numbers (scalars). Below is the full stack error. And part of update function that is referring to:
Traceback (most recent call last):
  File "main.py", line 34, in <module>
    agent.update(batch_size)
  File "ddpg.py", line 62, in update
    Qvals = self.critic.forward(states, actions)
  File "model.py", line 56, in forward
    x = F.relu(self.linear1(state))

RuntimeError: mat1 and mat2 shapes cannot be multiplied (64x1 and 3x128)


    def update(self, batch_size):
        states, actions, rewards, next_states, _ = self.memory.sample(batch_size)
        states = torch.FloatTensor(states)
        states = states.unsqueeze(1).expand(-1, 1)
        actions = torch.FloatTensor(actions)
        rewards = torch.FloatTensor(rewards)
        next_states = torch.FloatTensor(next_states)

        # Critic loss
        Qvals = self.critic.forward(states, actions)
        next_actions = self.actor_target.forward(next_states)
        next_Q = self.critic_target.forward(next_states, next_actions.detach())
        Qprime = rewards + self.gamma * next_Q
        critic_loss = self.critic_criterion(Qvals, Qprime)