I’m trying to get a RNN to predict the next value in a sequence. How can I resolve the error message below?

```
import torch
import torch.nn as nn
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error
```

The data I am using is imported from a CSV. Instead of using the actual data in this post, I’ve created dummy data that is the same data type (np.float64), as the data I’m using. I think the data’s type might be the source of the problem. I’ve tried altering it but keep getting the same error message.

```
# create random data that mimics actual data I am using
sampl = np.random.uniform(low=-3, high=3, size=(50,))
sampl.astype(np.float64)
```

```
# define seq length
seq_length = 10
data_x = sampl.copy()
# number of sequences w/i data
n_seq = len(data_x)//seq_length
# only keep enough data to make full sequences
data_x = data_x[:n_seq * seq_length]
# Number of input data we can have
nbr_input = len(data_x[:-seq_length])
# create feature data and target data
features = []
targets = []
# create data one seq at a time
for i in range(nbr_input):
features.append(data_x[i:i+seq_length])
targets.append(data_x[i+seq_length])
# convert data into pytorch tensors
feature_tensor = torch.from_numpy(np.array(features))
target_tensor = torch.from_numpy(np.array(targets))
# add a last dimension so that data is (batch_size, seq_length, features)
feature_tensor = feature_tensor.unsqueeze(-1)
target_tensor = target_tensor.unsqueeze(-1)
```

```
# DEFINE THE RNN
class RNN(nn.Module):
def __init__(self, input_size, output_size, hidden_dim, n_layers):
super(RNN, self).__init__()
self.hidden_dim=hidden_dim
self.rnn = nn.RNN(input_size, hidden_dim, n_layers, batch_first=True)
self.fc = nn.Linear(hidden_dim, output_size)
def forward(self, x, hidden):
batch_size = x.size(0)
r_out, hidden = self.rnn(x, hidden)
r_out = r_out.view(-1, self.hidden_dim)
output = self.fc(r_out)
return output, hidden
```

```
# test that dimensions of the model are as expected
test_rnn = RNN(input_size=1, output_size=1, hidden_dim=32, n_layers=2)
print(test_rnn)
```

```
print('Input size: ', feature_tensor.size())
# test out rnn sizes
test_out, test_h = test_rnn(feature_tensor, None)
print('Output size: ', test_out.size())
print('Hidden state size: ', test_h.size())
```

Input size: torch.Size([40, 10, 1])

RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #3 ‘mat2’ in call to _th_addmm_out