Hello at all,
I’m new to  pytorch and I’m trying to do a CNN- Model
but I get this errror
Thank you very much for your help

RuntimeError                              Traceback (most recent call last)
 in ()
----> 1 scores = dqn_improved(n_episodes=4000)
2 # plot the scores
3 fig = plt.figure()
4 ax = fig.add_subplot(111)
5 plt.plot(np.arange(len(scores)), scores)
 in dqn_improved(n_episodes, max_t, eps_start, eps_end, eps_decay)
55             score += reward
56             #reward = np.tanh(reward)
—> 57             agent.step(state, action, reward, next_state, done)
58             state = next_state
59             if done:
 in step(self, state, action, reward, next_state, done)
56             if len(self.memory) > self.batch_size:
57                 experiences = self.memory.sample()
—> 58                 self.learn(experiences, GAMMA)
59
60     def act(self, state, eps=0.):
 in learn(self, experiences, gamma)
92         “*** YOUR CODE HERE ***”
93         #Q_targets_next = self.qnetwork_target(next_states).detach().max(1)[0].unsqueeze(0)
—> 94         Q_targets_next = self.qnetwork_target(next_states).unsqueeze()
95         Q_targets =  rewards + (gamma * Q_targets_next * (1-dones))
96
/usr/local/lib/python3.5/dist-packages/torch/nn/modules/module.py in call(self, *input, **kwargs)
489             result = self._slow_forward(*input, **kwargs)
490         else:
–> 491             result = self.forward(*input, **kwargs)
492         for hook in self._forward_hooks.values():
493             hook_result = hook(self, input, result)
 in forward(self, x)
34
35         # Convolution Layer 1
—> 36         x = self.conv1(x)
37         x = self.relu1(x)
38
/usr/local/lib/python3.5/dist-packages/torch/nn/modules/module.py in call(self, *input, **kwargs)
489             result = self._slow_forward(*input, **kwargs)
490         else:
–> 491             result = self.forward(*input, **kwargs)
492         for hook in self._forward_hooks.values():
493             hook_result = hook(self, input, result)
/usr/local/lib/python3.5/dist-packages/torch/nn/modules/conv.py in forward(self, input)
299     def forward(self, input):
300         return F.conv2d(input, self.weight, self.bias, self.stride,
–> 301                         self.padding, self.dilation, self.groups)
302
303
RuntimeError: expected stride to be a single integer value or a list of 1 values to match the convolution dimensions, but got stride=[1, 1]
and the code
class CNN(nn.Module):
def __init__(self, action_size, hidden_size_conv, hidden_size_fc):
    super().__init__()
           
    # NOTE: All Conv2d layers have a default padding of 0 and stride of 1,
    # which is what we are using.
    
    # Convolution Layer 1                             # 28 x 28 x 1  (input)
    self.conv1 = nn.Conv2d(4, hidden_size_conv, kernel_size=5)  
    self.conv1_drop = nn.Dropout2d(p=0.5)  # 24 x 24 x 20  (after 1st convolution)
    self.relu1 = nn.ReLU()                            # Same as above
    
    # Convolution Layer 2
    self.conv2 = nn.Conv2d(hidden_size_conv, 30, kernel_size=5)     # 20 x 20 x 30  (after 2nd convolution)
    self.conv2_drop = nn.Dropout2d(p=0.5)             # Same as above
    self.maxpool2 = nn.MaxPool2d(2)                   # 10 x 10 x 30  (after pooling)
    self.relu2 = nn.ReLU()                            # Same as above 
    
    # Fully connected layers
    self.fc1 = nn.Linear(38880, hidden_size_fc)
    self.fc2 = nn.Linear(hidden_size_fc, action_size)

def forward(self, x):
    
    # Convolution Layer 1                    
    x = self.conv1(x)                        
    x = self.relu1(x)                        
    
    # Convolution Layer 2
    x = self.conv2(x)               
    x = self.conv2_drop(x)
    x = self.maxpool2(x)
    x = self.relu2(x)
    
    # Switch from activation maps to vectors
    x = x.view(-1, 38880)
    
    # Fully connected layer 1
    x = self.fc1(x)
    x = F.relu(x)
    x = F.dropout(x, training=True)
    
    # Fully connected layer 2
    x = self.fc2(x)
    
    return x


Blockquote