Ну ты уже вот тут глупость сделал.
self.layer_1 = nn.Linear(inp1, inp2) # Почему inp2 ?!
Первый параметр Linear - число входов слоя. Для первого слоя должно совпадать с числом значений для данного входа сети. Второй параметр - число нейронов, т.е. число выходов слоя. Должно совпадать с числом входов следующего слоя сети.
Вообще правило простое - сколько на выходе одного слоя, столько на входе следующего. Так как concatenate тупо дописывает данные одного входа в конец другого, то для него сумма длин входов должна быть равна выходу (а выход - входу следующего).
Например, в твоём случае на входе первого Linear должно быть inp1 нейронов, а на выходе - 72 - inp2 нейронов. После concatenate получится (72 - inp2) + inp2 = 72 нейрона - ровно столько, сколько на входе второго Linear.
Код исправишь сам.