Required dimensions :
	for epoch in range(num_epochs):

		a0 = torch.randn(8,2,8,8)
		b0 = torch.randn(8,2,8,8)
		a = [a0]*11
		b = [b0]*11

		out_1 = model_1(a)  # Input is a list of size 11 (model parameter) each containing 8 batch size values of size (2,8,8)
		out_2 = model_2(b)  # Output is a lsit of size 11 (model parameter) each containing 8 batch size values of size (1,8,8)

		train = []
		for i in range(len(out_1)):
			train.append(torch.cat([out_1[i], out_2[i]], dim=1))

		out_3 = model_3(train)

		loss = criterion(out_3,truth)
		loss.backward()
		optimizer.step()

Hope it helps