Масса 24 швеллера: Швеллер 24 – цена за метр, вес, размер. Доставка по Москве

Калькулятор веса стального швеллера. Торговый Дом «Профиль»

Квадратная

Прямоугольная

Круглая

Уголок

Швеллер

Полоса

Лист

Арматура

Квадрат

Балка

Круг

В зависимости от способа производства швеллера используются различные формулы расчета веса погонного метра. Для того, чтобы рассчитать удельный вес горячекатаного швеллера необходимо знать радиусы внутреннего закругления и закругления полок. Также, при производстве горячекатаных швеллеров, в отличие от гнутых по ГОСТ 8278–83 и 8281–80, зачастую толщина полок отличается от толщины стенки швеллера, что также повлияет на формулу расчета веса.

В калькуляторе веса швеллера вы сможете осуществить поиск по наименованию и размерам на основе информации справочников различных стандартов, в случае если швеллер вашего размера не будет найден, его вес будет рассчитан по приблизительной формуле.

Таблицы теоретической массы метра швеллера и его размеров

ГОСТ 8240-97 — Швеллеры стальные горячекатаные

Теоретическая масса 1 погонного метра швеллера по ГОСТ 8240-97

НаименованиеhabstВес 1 м, кгМетров в тонне
Швеллер 5Э5032324,274.790208.77
Швеллер 5У5032324,474.840206.61
Швеллер 5П5032324,474. 840206.61
Швеллер 6.5Э6536364,27,25.820171.82
Швеллер 6.5У6536364,47,25.900169.49
Швеллер 6.5П6536364,47,25.900169.49
Швеллер 8Э8040404,27,46.920144.51
Швеллер 8У8040404,57,47.050141.84
Швеллер 8П8040404,57,47.050141.84
Швеллер 8С8045455,599. 260107.99
Швеллер 10Э10046464,27,68.470118.06
Швеллер 10У10046464,57,68.590116.41
Швеллер 10П10046464,57,68.590116.41
Швеллер 12Л120303034,85.020199.2
Швеллер 12Э12052524,57,810.24097.66
Швеллер 12У12052524,87,810.40096.15
Швеллер 12П12052524,87,810. 40096.15
Швеллер 14Л14032323,25,65.940168.35
Швеллер 14Э14058584,68,112.15082.3
Швеллер 14У14058584,98,112.30081.3
Швеллер 14П14058584,98,112.30081.3
Швеллер 14С140585869,514.53068.82
Швеллер 14Са140606089,516.72059.81
Швеллер 16Л16035353,45,37. 100140.85
Швеллер 16С16063636,51017.53057.05
Швеллер 16Э16064644,78,414.01071.38
Швеллер 16У160646458,414.20070.42
Швеллер 16П160646458,414.20070.42
Швеллер 16Са16065658,51019.74050.66
Швеллер 16аУ16068685915.30065.36
Швеллер 16аП16068685915. 30065.36
Швеллер 18Л18040403,65,68.490117.79
Швеллер 18С1806868710,520.20049.5
Швеллер 18Э18070704,88,716.01062.46
Швеллер 18У18070705,18,716.30061.35
Швеллер 18П18070705,18,716.30061.35
Швеллер 18Са1807070910,523.00043.48
Швеллер 18аУ18074745,19,317. 40057.47
Швеллер 18аП18074745,19,317.40057.47
Швеллер 18Сб180100100810,526.72037.43
Швеллер 20Л20045453,8610.12098.81
Швеллер 20С200737371122.63044.19
Швеллер 20Са200757591125.77038.8
Швеллер 20Э20076764,9918.07055.34
Швеллер 20У20076765,2918. 40054.35
Швеллер 20П20076765,2918.40054.35
Швеллер 20Сб20010010081128.71034.83
Швеллер 22Л220505046,411.86084.32
Швеллер 22Э22082825,19,520.69048.33
Швеллер 22У22082825,49,521.00047.62
Швеллер 22П22082825,49,521.00047.62
Швеллер 24Л24055554,26,813. 66073.21
Швеллер 24С24085859,51434.90028.65
Швеллер 24Э24090905,31023.69042.21
Швеллер 24У24090905,61024.00041.67
Швеллер 24П24090905,61024.00041.67
Швеллер 26С2606565101634.61028.89
Швеллер 26Са2609090101539.72025.18
Швеллер 27Л27060604,57,316. 30061.35
Швеллер 27Э27095955,810,527.37036.54
Швеллер 27У2709595610,527.70036.1
Швеллер 27П2709595610,527.70036.1
Швеллер 30Л30065654,87,819.07052.44
Швеллер 30С30085857,513,534.44029.04
Швеллер 30Са30087879,513,539.15025.54
Швеллер 30Сб300898911,513,543. 86022.8
Швеллер 30Э3001001006,31131.35031.9
Швеллер 30У3001001006,51131.80031.45
Швеллер 30П3001001006,51131.80031.45
Швеллер 33Э3301051056,911,736.14027.67
Швеллер 33У330105105711,736.50027.4
Швеллер 33П330105105711,736.50027.4
Швеллер 36Э3601101107,412,641. 53024.08
Швеллер 36У3601101107,512,641.90023.87
Швеллер 36П3601101107,512,641.90023.87
Швеллер 40Э4001151157,913,547.97020.85
Швеллер 40У400115115813,548.30020.7
Швеллер 40П400115115813,548.30020.7

Телефоны

8 800 100 17 62 (бесплатно по всей территории России)

+7 495 543 91 20 (многоканальный)

+7 985 739 17 20

Поделиться:

Корзина

0 элементов

Таблица весов арматуры, швеллера листа, двутавра, полосы

Масса металлопроката в таблице

Масса стержневой арматуры (ГОСТ 5781-82)

Ф стержня(мм)68101214161820222528323640455055607080
Масса 1м пр. (кг)0,2220,3950,6170,8881,2101,5802,0002,4702,9803,8504,8306,3107,9909,87012,48015,41018,65022,19030,21039,460
Пл.поп.сеч.(см2)0,2830,5030,7851,1311,5402,0102,5403,1403,8004,9106,1608,04010,18012,57015,00019,63023,76028,27038,48050,270

Масса листа (из расчета удельного веса 7,85 г/см2)

Толщина (мм)0,50,550,60,70,80,91,01,21,41,51,71,81,92,02,53,03,54,0
Масса кг/м23,9254,324,715,506,287,067,859,4210,9911,7713,3414,1314,9115,7019,6223,5527,4731,40
Толщина (мм)5,06,07,08,09,0101214161820222530405060
Масса кг/м239,2547,1054,9562,8070,6578,5094,20109,9125,6141,3157,0172,7196,25235,5314,0392,5471,0

Масса равнополочных уголков (ГОСТ 8509-93)

Размеры (мм)20х425х432х435х436х440х440х545х445х550х450х563х463х563х670х775х575х675х780х780х8
Масса 1м, кг1,151,461,912,122,162,422,972,733,373,053,773,904,815,727,395,806,897,968,519,65
Размеры (мм)90х790х8100х7100х8100х10100х12110х7110х8125х8125х9125х10125х12140х10140х12160х10160х12180х11180х12200х16200х20
Масса 1м, кг9,6410,9010,8012,2015,1017,9011,9013,5015,5017,3019,1022,7021,5025,5024,7029,4030,5033,1048,7060,10

Масса швеллера (ГОСТ 8240-89)

Номер швеллера5; 5П6,58; 8П10;10П12;12П14;14П16;16П16А18;18П18А20;20П22;22П24;24П27;27П30;30П33;33П36;36П40;40П
Масса 1м, кг4,845,907,058,5910,4012,3014,2015,3016,3017,4018,4021,0024,0027,7031,8036,5041,9048,30

Масса балки двутавровой (ГОСТ 8239-89)

Номер двутавра10121416182022242730333640
h/b100/55120/64140/73160/81180/90200/100220/110240/115270/125300/135330/140360/145400/155
s/t4,5/7,24,8/7,34,9/7,55,0/7,85,1/8,15,2/8,45,4/8,75,6/9,56,0/9,86,5/10,27/11,27,5/12,38,3/13
Масса 1м, кг9,4611,513,715,918,421,024,027,331,536,542,248,657,0

Масса круга (ГОСТ 2590-88)

Диаметр (мм)55,566,36,5789101112131415161718192021
Масса 1м, кг0,1540,1860,2220,2450,2600,3020,3950,4990,6160,7460,8881,041,211,391,581,782,002,232,472,72
Диаметр (мм)2223242526272830313233343536373839404142
Масса 1м, кг2,983,263,553,854,174,504,835,555,926,316,717,137,557,998,448,909,389,8610,3610,88
Диаметр (мм)4344454647485052535455565860626365676870
Масса 1м, кг11,4011,9412,4813,0513,7514,2015,4216,6717,3217,6518,6519,3320,7422,1923,7024,4726,0527,6828,5130,21
Диаметр (мм)7275788082859095100105110120130140150160170180190200
Масса 1м, кг31,9634,6837,5139,4641,4644,5449,9455,6461,6567,9774,6088,78104,20120,84138,72157,83178,18199,76222,57246,62

Масса шестегранников (ГОСТ 2879-88 и 8560-78)

Ф впис. круга (мм)1011121314151617181920212224252627283032
Масса 1м, кг0,6800,8230,9791,151,331,531,741,962,202,452,723,003,293,924,254,594,965,336,126,96
Ф впис.круга (мм)3438404142454648505355566063657075808590
Масса 1м, кг7,868,819,8210,8811,4011,9914,4015,6616,9919,1020,6021,3224,5026,9828,7033,3038,2443,5149,1255,07

RuntimeError: заданные группы = 1, вес [64, 3, 3, 3], поэтому ожидалось, что вход [16, 64, 256, 256] будет иметь 3 канала, но вместо этого получил 64 канала — зрение

яшкатария
(Яш Катария)


1

Почему я получаю эту ошибку?

RuntimeError: заданные группы = 1, вес [64, 3, 3, 3], поэтому ожидалось, что ввод [16, 64, 256, 256] будет иметь 3 канала, но вместо этого получил 64 канала

Я написал реализацию U-net.

 класс double_conv(nn.Module):
  def __init__(самостоятельно, in_ch, out_ch):
    super(double_conv, self).__init__()
    self.conv1 = nn.Conv2d(in_ch, out_ch, 3, padding=1)
    self.conv2 = nn.Conv2d(in_ch, out_ch, 3, padding=1)
    
  защита вперед (я, х):
    x = F.relu (self.conv1 (x))
    x = F.relu (self.conv2 (x))
    вернуть х
  
  
класс input_conv(nn.Module):
  def __init__(самостоятельно, in_ch, out_ch):
    супер(input_conv, сам).__init__()
    self.inp_conv = double_conv(in_ch, out_ch)
    
  защита вперед (я, х):
    х = self.inp_conv(x)
    вернуть х
  
класс вверх (nn.Module):
  def __init__(самостоятельно, in_ch, out_ch):
    супер(вверх, я).__init__()
    self. up_conv = nn.ConvTranspose2d(in_ch, out_ch, kernel_size=2, шаг=2)
    self.conv = double_conv(in_ch, out_ch)
    
  защита вперед (я, x1, x2):
    x1 = self.up_conv(x1)
    х = torch.cat ([x2, x1], тусклый = 1)
    х = самоутверждение (х)
    вернуть х
    
    
класс вниз (nn.Module):
  def __init__(самостоятельно, in_ch, out_ch):
    супер(вниз, я).__init__()
    self.pool = nn.MaxPool2d(2)
    self.conv = double_conv(in_ch, out_ch)
    
  защита вперед (я, х):
    х = собственный пул (х)
    х = самоутверждение (х)
    вернуть х
  
класс last_conv(nn.Module):
  def __init__(самостоятельно, in_ch, out_ch):
    super(last_conv, self).__init__()
    self.conv1 = nn.Conv2d (in_ch, out_ch, 1)
    
  защита вперед (я, х):
    х = самоутверждение1 (х)
    вернуть х
класс Unet(nn.Module):
  def __init__(я, каналы, классы):
    супер(Unet, сам).__init__()
    self.inp = input_conv (каналы, 64)
    self.down1 = вниз (64, 128)
    self.down2 = вниз (128, 256)
    self.down3 = вниз (256, 512)
    self. down4 = вниз (512, 1024)
    self.up1 = вверх (1024, 512)
    self.up2 = вверх(512, 256)
    self.up3 = вверх(256, 128)
    self.up4 = вверх(128, 64)
    self.out = last_conv(64, классы)
    
  защита вперед (я, х):
    x1 = self.inp(x)
    x2 = self.down1 (x1)
    x3 = self.down2 (x2)
    x4 = self.down3 (x3)
    x5 = self.down4 (x4)
    х = self.up1 (x5, x4)
    х = self.up2 (х, х3)
    х = self.up3 (х, х2)
    х = self.up1 (х, х1)
    х = самовыход (х)
    вернуть х
модель = Унет (3, 1)
 

Это тренировочный цикл

 для эпохи в диапазоне (5):
    для i данные в enumerate (trainloader):
        входы, метки = данные
        входы = переменная (входы).cuda()
        метки = переменная (метки).cuda()
        
        # вперед + назад + оптимизация
        
        # обнуляет буферы градиента всех параметров
        оптимизатор.zero_grad()
        #проход вперед
        выходы = model_pytorch (входы)
        # рассчитать убыток
        потеря = функция_потери (выходные данные, метки)
        # обратное распространение
        потеря. назад()
        # Выполняет ли обновление после расчета градиентов
        оптимизатор.шаг()
        
        if (i+1) % 5 == 0: # печатать каждые 100 мини-пакетов
            print('[%d, %5d] потеря: %.4f' % (эпоха, i+1, loss.data[0]))
 

3 отметок «Нравится»

(Джунью)


2

Это означает, что ваш вход должен иметь 3 канала, но вы вводите 64 канала. Ввод организован в формате [N, C, W, H], ваш ввод, а также слой данных, должны иметь 3 канала. Вы должны проверить свой код.

1 Нравится

яшкатария
(Яш Катария)


3

Мой вход имеет 3 канала. Вход в Unet 3, 1, что соответствует 3 каналам и 1 классу.

СаймонВ
(Саймон Ван)


4

Я считаю, что ввод ответа @junyuseu означает ввод в конверсионный слой, а не ввод в фактическую работу сети. На самом деле, если ваш in_ch всегда равен out_ch, модуль double_conv обязательно выдаст такую ​​ошибку.

июнюсеу
(Джунью)


5

Ошибка здесь. В классе double_conv входной dim первого конверсионного слоя — in_ch(3), выходной dim — out_ch(64), второй конверсионный слой такой же, но входной dim этого слоя равен 64, а не in_ch(3)

10 лайков

яшкатария
(Яш Катария)


6

Ага, глупая ошибка. Спасибо за помощь

Silva_Rubanza
(Сильва Рубанза)


7

я получил такую ​​​​же ошибку времени выполнения «данные группы = 1, вес размера [64, 3, 7, 7], ожидаемый ввод [1, 4, 224, 224], чтобы иметь 3 канала, но получил 4 канала вместо «

Давно пытаюсь исправить, но не могу понять, где ошибка.
Это моя модель арки.

любая помощь будет оценена

птрблк


8

Ваш ввод содержит 4 канала, в то время как первый конверсионный слой ожидает ввода с 3 каналами.
Если вы имеете дело с изображениями RGB, 4-й канал может быть альфа-каналом, который можно просто удалить.
Если вы используете пользовательский DataLoader , вы могли бы просто использовать:

 def __getitem__(self, index):
    img = Image.open(self.paths[index]).convert('RGB')
    ...
    # В качестве альтернативы удалите альфа-канал из тензора
    img = Image.open(self.paths[индекс])
    х = TF.to_tensor (изображение)
    х = х[:3]
    ...
 

7 лайков

aksg87
(Акшай Гоэль)


9

Спасибо за ответ! У меня был другой, но связанный с этим вопрос.

Если вы имеете дело с 1-канальным изображением в градациях серого, но хотите использовать предварительно обученную сеть (я работаю над этим репозиторием на основе resnet18…

Не могли бы вы предложить продублировать канал 3 раза, чтобы он соответствовал модели, или есть лучший подход?


10

Думаю, это самый простой способ.
В качестве альтернативы вы также можете попробовать уменьшить количество каналов фильтра (среднее значение, сумма, ?) и посмотреть, может ли это повысить производительность (я еще не сравнивал эти подходы).

1 Нравится

гсс
(Гильермина)


11

Я получаю ту же ошибку. Любая идея, где это может быть в моем коде. Кажется, я не понимаю, где ошибка…

 класс CNN(nn.Module):
        защита __init__(сам):
            супер(CNN, сам).__init__()
            self.conv1 = nn.Conv2d(4, 7, (3, 3))
            # self.convnorm1 = nn.BatchNorm2d(7)
            # self.pool1 = nn.MaxPool2d((2, 2))
            self.conv2 = nn.Conv2d(7, 14, (3, 3))
            self.convnorm2 = nn. BatchNorm2d(14)
            # self.pool2 = nn.MaxPool2d((2, 2))
            #
            self.conv3 = nn.Conv2d(14, 28, (3, 3))
            # self.convnorm3 = nn.BatchNorm2d(28)
            # self.pool3 = nn.MaxPool2d((2, 2))
            self.conv4 = nn.Conv2d(28, 56, (3, 3))
            self.convnorm4 = nn.BatchNorm2d(56)
            # self.pool4 = nn.MaxPool2d((2, 2))
            self.conv5= nn.Conv2d(56, 112, (3, 3))
            self.convnorm5 = nn.BatchNorm2d(112)
            # self.pool5 = nn.MaxPool2d((2, 2))
            self.conv6 = nn.Conv2d(112, 224, (2, 2))
            self.convnorm6 = nn.BatchNorm2d(224)
            # self.pool6 = nn.MaxPool2d((2, 2))
            #
            # self.conv7 = nn.Conv2d(224, 448, (2, 2))
            # self.convnorm7 = nn.BatchNorm2d(448)
            # self.pool7 = nn.MaxPool2d((2, 2))
            self.linear1 = nn.Linear (47096, 200)
            self.linear1_bn = nn.BatchNorm1d (200)
            self.drop = nn.Dropout(DROPOUT)
            self. linear2 = nn.Linear (200, 17)
            self.act = факел.relu
        защита вперед (я, х):
            # x = self.act(self.conv1(x))
            # x = self.pool1(self.convnorm1(self.act(self.conv1(x))))
            #x = self.pool1(self.act(self.conv1(x)))
            х = self.act (self.conv1 (x))
            #x = self.pool2(self.convnorm2(self.act(self.conv2(x))))
            x = self.convnorm2 (self.act (self.conv2 (x)))
            х = self.act (self.conv3 (x))
            # x = self.pool3(self.convnorm3(self.act(self.conv3(x))))
            # x = self.pool4(self.convnorm4(self.act(self.conv4(x))))
            х = self.convnorm4 (self.act (self.conv4 (x)))
            # x = self.pool5(self.convnorm5(self.act(self.conv5(x))))
            # x = self.pool6(self.convnorm6(self.act(self.conv6(x))))
            # x = self.pool7(self.convnorm7(self.act(self.conv7(x))))
            x = self.drop((self.linear1_bn(self.act(self.linear1(x.view(len(x), -1))))))
            вернуть self.linear2 (x)
 

птрблкк


12

Какая у вас форма ввода?
Код отлично работает, используя этот фрагмент:

 model = CNN()
x = факел.randn(2, 4, 37, 37)
выход = модель (х)
 

1 Нравится

(адарш пандей)


13

@ptrblck сэр, пожалуйста, объясните, что такое форма ввода … я забыл … а также … у меня похожая ошибка с моим кодом … пожалуйста, помогите мне понять это …
вот фрагмент::

import cv2
import torch
Импорт TORCH.NN AS NN
Import Torch.nn.functional As F
Import OS
из импортного изображения
Импорт. каскады

face_cascade =cv2.CascadeClassifier(«haarcascade_frontalface_default.xml»)
eye_cascade =cv2.CascadeClassifier(«haarcascade_eye.xml»)
#определить функцию, которая будет выполнять обнаружение . detectMultiScale (серый, 1.3,5)
для (x, y, w, h) в лицах:
cv2.rectangle (кадр, (x, y), (x + w, y + h), (255,0 ,0),2)
roi_gray=gray[y:y+h,x:x+w]
roi_color=frame[y:y+h,x:x+w]
eyes=eye_cascade.detectMultiScale(roi_gray,1.1 ,3)
для (ex,ey,ew,eh) в глазах:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
возврат кадра
# применение функции обнаружения

class CNN(nn.Module):
def init (self,num_inputs):
super(CNN, self). init ()
self.conv1 = nn.Conv2d(num_inputs, 32, 3, шаг=2, заполнение=1)
self.conv2 = nn.Conv2d(32, 32, 3, шаг=2, заполнение=1) )
self.conv3 = nn.Conv2d(32, 32, 3, шаг=2, заполнение=1)
self.conv4 = nn.Conv2d(32, 32, 3, шаг=2, заполнение=1)
self.fc1 = nn.Linear(in_features =32 3 3 , out_features = 40)
self.fc2 = nn.Linear(in_features = 40, out_features = 2)
def forward(self,x):
x = F.relu(F.max_pool2d(self. conv1(x), 3, 2))
x = F.relu(F.max_pool2d(self.conv2(x), 3, 2))
x = F.relu( F.max_pool2d(self.conv3(x), 3, 2))
x = x.view(x.size(0), -1)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x
#обучить вашу нейронную сеть
cnn=CNN(3)#указать количество входных параметров

batchSize = 4 # Устанавливаем размер батча.
imageSize = 64 # Устанавливаем размер генерируемых изображений (64×64).
path=r»C:\Users\SHRIKANT\Music\Downloads\Simple_Linear_Regression\computer-vision\Module 3 — GANs»

#transform = transforms.Compose([transforms.Scale(imageSize), transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),]) # Мы создаем список преобразований (масштабирование, тензорное преобразование, нормализация) для применения к входным изображениям.

#dataloader = torch.utils.data.DataLoader(dataset, batch_size = batchSize, shuffle = True, num_workers = 2) # Мы используем dataLoader для пакетного получения изображений тренировочного набора.
os.chdir(path)
loss = nn.MSELoss()

для эпохи в диапазоне (25):
#train to find adarsh ​​pandey

 для l в диапазоне (1,66):
      fak=Image.open(str(l)+".png").convert("RGB")
      img = Image.open(self.paths[индекс])
      х = TF.to_tensor (изображение)
      х = х[:3]
       # с открытым (str(l)+".png",'rb') как фак:
      input = Variable (torch.from_numpy (np.array (fak, dtype = 'uint8'))). unsqueeze (0)
      #np.array(img, dtype='uint8')
      вывод = cnn (ввод)
      оптимизатор = optim.Adam (cnn.parameters (), lr = 0,001)
      #что, если здесь был optimizer.zero_grad()?? какой-либо эффект ....... пожалуйста, проверьте это
      loss_error = потеря (выход, ввод)
      оптимизатор.zero_grad()
      
      loss_error.backward()
      оптимизатор.шаг()
  #тренинг по идентификации шубхи пандей
  
  
  #тренировка заканчивается здесь
  probs=F.softmax(выход)
  label=probs.multinomial()[0]
  печать (этикетка)
 

video_capture=cv2.VideoCapture(0)
#f_name=100
пока True:

 _,frame=video_capture. read()
серый = cv2.cvtColor (кадр, cv2.COLOR_BGR2GRAY)
холст = обнаружить (серый, рамка)
#os.chdir(путь)
#cv2.imwrite(str(f_name)+".png",frame)
cv2.imshow('Видео',холст)
#f_name=f_name+1
если cv2.waitKey(1) и 0xFF ==ord('q'):
    перерыв
 

video_capture.release()
cv2.destroyAllWindows()

ptrblck


14

Входная форма относится к форме ваших входных тензоров, которые вы передаете своей модели.
Напр. Модули nn.Conv2d ожидают 4-мерный тензор формы [batch_size,channels,height,width] .

Не могли бы вы удалить несвязанные фрагменты кода (например, каскад opencv и т. д.) и опубликовать (минимальный) фрагмент кода для воспроизведения вашей ошибки с использованием случайных входных данных, пожалуйста?

PS: Вы можете добавлять фрагменты кода, заключая их в три обратных кавычки «`

1 Нравится

(Аакаш Бхатия)


15

класс LeNet(nn.Module):
def init (self):
super(LeNet, self). init ()
self.conv1 = nn.Conv2d(1, 6, 5,bias=False)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)

 def forward(self, x):
    выход = self.conv1(x)
    аут = F.relu (аут)
    выход = F.max_pool2d (выход, 2)
    выход = F.relu (self.conv2 (выход))
    выход = F.max_pool2d (выход, 2)
    выход = выход.просмотр(выход.размер(0), -1)
    аут = F.relu (self.fc1 (аут))
    аут = F.relu (self.fc2 (аут))
    аут = self.fc3(аут)
    вернуться
 

модель = LeNet().to(устройство=устройство)

if args.model:
if os.path.isfile(args.model):
print(«=> загрузка контрольной точки ‘{}'».format( аргументы.модель))
контрольная точка = torch.load(args.model)
args.start_epoch = контрольная точка[‘эпоха’]
best_prec1 = контрольная точка[‘best_prec1’]
model. load_state_dict(checkpoint[‘state_dict’])
print(«=> загружено контрольная точка ‘{}’ (эпоха {}) Prec1: {:f}».format(args.model, checkpoint[‘epoch’], best_prec1))
else:
print(«=> контрольная точка не найдена в ‘{} «».format(args.resume))

print(‘Предварительная обработка прошла успешно!’)

def test(model):
kwargs = {‘num_workers’: 1, ‘pin_memory’: True} if args.cuda еще {}
test_loader = torch.utils.data.DataLoader(
datasets.MNIST(‘./data’, train=True, download=True,
transform=transforms.Compose([
transforms.Resize((32, 32)),
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))
])),
batch_size=args.test_batch_size, shuffle=True, **kwargs)

получая эту ошибку: RuntimeError: Учитывая группы = 1, вес размера 3 6 5 5, ожидаемый ввод [256, 3, 14, 14] будет иметь 6 каналов, но вместо этого получил 3 канала
, если я изменю смещение = True, тогда я получаю эту ошибку:
RuntimeError: Учитывая вес размера 3 1 5 5, ожидаемое смещение будет одномерным с 3 элементами, но вместо этого получено смещение размера [6]

ptrblck


16

Ответил здесь.

Мария_Фернанда_Де_Ла
(Мария Фернанда Де Ла Торре)


17

Здравствуйте, у меня есть этот генератор наборов данных, и у меня возникает похожая проблема. Я пробовал то, что вы предложили, но получаю эту ошибку:

 return data[:3], target[:3], index
IndexError: недопустимый индекс скалярной переменной.
 

Знаете, почему это скаляр, а не тензор?

 класс MyDataset (набор данных):
    def __init__(я,remove_list):
        self.cifar10 = наборы данных.CIFAR10(root='./data',
                                        скачать = Ложь,
                                        поезд = правда,
                                        трансформировать = трансформировать)
        self.data = self.cifar10.data
        # self. data = np.vstack(self.data).reshape(-1, 3, 32, 32)
        # self.data = self.data.transpose((0, 2, 3, 1))
        self.targets = self.cifar10.targets
        self.final_data, self.final_targets = self.__remove__(remove_list)
      
    def __getitem__(я, индекс):
        данные, цель = self.final_data[индекс], self.final_targets[индекс]
        
        возвращаемые данные[:3], цель[:3], индекс
    защита __len__(я):
        вернуть len(self.final_data)
    def __remove__(я, remove_list):
        данные = np.delete (self.data, remove_list, ось = 0)
        цели = np.delete (self.targets, remove_list, ось = 0)
        
        возвращаемые данные, цели
 

птрблкк


18

target может быть скаляром, так как вы вызываете self.final_targets с одним индексом.
Также данные должны быть одной выборкой, и я не уверен, что делает индексация [:3] .

Не могли бы вы немного объяснить свой вариант использования и чего вы пытаетесь достичь?

1 Нравится

Аншуман_Сенапати
(Аншуман Сенапати)


19

У меня очень похожая ошибка.

«Данные группы = 1, вес размера [10, 3, 7, 7], ожидаемый ввод [1, 64, 64, 3] будет иметь 3 канала, но вместо этого получил 64 канала»

Я понимаю, что ввод должен быть [партия, каналы, высота, ширина], но моя среда возвращает мне массивы размера (64, 64, 3). Как мне сделать это (3, 64, 64), ввести его в nn.Conv2d и обойти эту ошибку?

Пожалуйста, помогите. @ptrblck


20

Если вы загружаете изображения, например, с помощью OpenCV , вы получите массив в форме [H, W, C] и вам нужно будет переставить его на [C, H, W] .
Если вы хотите выполнить эту перестановку в массиве numpy, вы можете использовать np.transpose , а tensor.permute следует использовать в PyTorch.

3 Likes

python — RuntimeError: заданные группы = 1, вес размера [64, 32, 3, 3], ожидаемый ввод [128, 64, 32, 32] будет иметь 32 канала, но вместо этого получил 64 канала

I Я пытаюсь поэкспериментировать с тем, почему у нас есть исчезающий и взрывающийся градиент, и почему Resnet так помогает избежать двух проблем, описанных выше. Поэтому я решил обучить простую сеть Convolution со многими слоями, просто чтобы узнать, почему модель LOSS увеличивается, когда я тренируюсь со многими слоями, например, 20 слоями. но в какой-то момент я получаю эту ошибку, я могу понять, в чем может быть проблема, но я знаю, что это из моей архитектуры модели.

 images.shape: torch.Size([128, 3, 32, 32])
-------------------------------------------------- -------------------------
RuntimeError Traceback (последний последний вызов)
 в <модуле>
      1 для изображений, метки в train_dl:
      2 print('images.shape:', images.shape)
----> 3 выхода = модель (изображения)
      4 print('out.shape:', out.shape)
      5 print('выход[0]:', выход[0])
/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py в _call_impl(self, *input, **kwargs)
    725 результат = self._slow_forward(*input, **kwargs)
    726 еще:
--> 727 результат = self.forward(*input, **kwargs)
    728 для хука в itertools.chain(
    729_global_forward_hooks.values(),
 в пересылке (я, xb)
     31
     32 защиты вперед (на себя, xb):
---> 33 вернуть self.network(xb)
/opt/conda/lib/python3. 7/site-packages/torch/nn/modules/module.py в _call_impl(self, *input, **kwargs)
    725 результат = self._slow_forward(*input, **kwargs)
    726 еще:
--> 727 результат = self.forward(*input, **kwargs)
    728 для хука в itertools.chain(
    729_global_forward_hooks.values(),
/opt/conda/lib/python3.7/site-packages/torch/nn/modules/container.py в пересылке (я, ввод)
    115 по определению вперед (на себя, ввод):
    116 для модуля в себе:
--> 117 ввод = модуль (ввод)
    118 возврат ввода
    119
/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py в _call_impl(self, *input, **kwargs)
    725 результат = self._slow_forward(*input, **kwargs)
    726 еще:
--> 727 результат = self.forward(*input, **kwargs)
    728 для хука в itertools.chain(
    729_global_forward_hooks.values(),
/opt/conda/lib/python3.7/site-packages/torch/nn/modules/conv.py в пересылке (я, ввод)
    421
    422 def forward(self, input: Tensor) -> Tensor:
--> 423 вернуть self._conv_forward(input, self.weight)
    424
    425 класс Conv3d(_ConvNd):
/opt/conda/lib/python3. 7/site-packages/torch/nn/modules/conv.py в _conv_forward(я, ввод, вес)
    418 _pair(0), само.расширение, само.группы)
    419 вернуть F.conv2d(ввод, вес, self.bias, self.stride,
--> 420 self.padding, self.dilation, self.groups)
    421
    422 def forward(self, input: Tensor) -> Tensor:
RuntimeError: заданные группы = 1, вес размера [64, 32, 3, 3], ожидаемый ввод [128, 64, 32, 32] будет иметь 32 канала, но вместо этого получил 64 канала
 

Моя модель Архитектура — это класс

 Cifar10CnnModel (ImageClassificationBase):
защита __init__(сам):
супер().__инит__()
self.network = nn.Sequential(
nn.Conv2d(3, 32, размер_ядра=3, заполнение=1),
nn.Conv2d(32, 32, размер_ядра=3, заполнение=1),
nn.ReLU(),
nn.Conv2d(32, 64, размер_ядра=3, шаг=1, заполнение=1),
nn.Conv2d(32, 64, размер_ядра=3, шаг=1, заполнение=1),
nn.ReLU(),
nn.MaxPool2d(2, 2), # вывод: 64 x 16 x 16
nn.