Solving error for mismatch tensor size

code:
num_epochs = 100
loss_history =
for i in range(num_epochs):
model.train()
total_loss =0.0
for batch in train_dataloader:
pv, fv, ptf, ftf = batch
fv = fv.unsqueeze(-1)
optimiser.zero_grad()
pom = torch.ones_like(pv)
ftf = ftf.view(ptf.shape[0], fv.shape[1], ptf.shape[2])
outputs = model(past_values=pv,past_time_features=ptf,past_observed_mask=pom,future_values=fv,future_time_features=ftf)
loss = outputs.loss
loss.backward()
optimiser.step()
total_loss +=loss.item()
avg_loss = total_loss/len(train_dataloader)
loss_history.append(avg_loss)


RuntimeError Traceback (most recent call last)
in <cell line: 3>()
10 pom = torch.ones_like(pv)
11 ftf = ftf.view(ptf.shape[0], fv.shape[1], ptf.shape[2])
—> 12 outputs = model(past_values=pv,past_time_features=ptf,past_observed_mask=pom,future_values=fv,future_time_features=ftf)
13 loss = outputs.loss
14 loss.backward()

14 frames
/usr/local/lib/python3.10/dist-packages/torch/nn/modules/linear.py in forward(self, input)
114
115 def forward(self, input: Tensor) → Tensor:
→ 116 return F.linear(input, self.weight, self.bias)
117
118 def extra_repr(self) → str:

RuntimeError: mat1 and mat2 shapes cannot be multiplied (3072x46 and 34x64)