• Как исправить код?

    Vindicar
    @Vindicar
    RTFM!
    Ну ты уже вот тут глупость сделал.
    self.layer_1 = nn.Linear(inp1, inp2)  # Почему inp2 ?!

    Первый параметр Linear - число входов слоя. Для первого слоя должно совпадать с числом значений для данного входа сети. Второй параметр - число нейронов, т.е. число выходов слоя. Должно совпадать с числом входов следующего слоя сети.
    Вообще правило простое - сколько на выходе одного слоя, столько на входе следующего. Так как concatenate тупо дописывает данные одного входа в конец другого, то для него сумма длин входов должна быть равна выходу (а выход - входу следующего).

    Например, в твоём случае на входе первого Linear должно быть inp1 нейронов, а на выходе - 72 - inp2 нейронов. После concatenate получится (72 - inp2) + inp2 = 72 нейрона - ровно столько, сколько на входе второго Linear.

    Код исправишь сам.
    Ответ написан
    Комментировать
  • Как решать такие задачи?

    Vindicar
    @Vindicar
    RTFM!
    Размер выхода слоя равен размеру входа следующего слоя.
    Вот как узнать размер выхода последнего слоя - я фз, тут недостаточно данных.

    EDIT: ой, блин, я невнимательный. Не увидел, что слои идут не 1->2->3->4, а 4->3->4.
    Тогда ещё проще, выход 4 должен совпадать по размеру со входом 3, а вход 4 - с выходом 3.
    Ответ написан
    2 комментария
  • Как исправить код?

    badcasedaily1
    @badcasedaily1
    data engineer, author habr
    import numpy as np
    
    arr = np.arange(10).reshape(10)
    print(arr)
    
    arr_max = np.max(arr)
    arr_mean = np.mean(arr)
    
    arr1 = np.where(arr == arr_max, arr_mean, arr)
    print(arr1)
    
    print(arr_max)
    print(arr_mean)


    в строке с np.where нужно сравнивать arrс arr_max, чтобы заменить максимальное значение на среднее
    Ответ написан
    Комментировать