Швеллер 16п вес 1 м: 16 (. 14,2 . 1 ./.) 1- ! .

alexxlab | 16.04.2023 | 0 | Разное

Размер

(A x B x C) 2 x 1 x 3/16, HR A36 Швеллеры Размеры стержней On Fay Industries, Inc. (сталь * распиловка)

Запросить информацию

Структурные формы

На следующих страницах перечислены формы, обычно имеющиеся на складе. Американский институт чугуна и стали установил систему обозначения конструктивных форм, которая была принята производителями стали. В столбце, озаглавленном «Обозначение AISI», буква или буквы предшествуют размеру и весу на фут. Например, C3 X 4.1 — это обозначение AISI для стандартного конструкционного канала размером 3 дюйма x 4,1 #.

W-образные формы представляют собой двоякосимметричные формы с широкими полками, используемые в качестве балок или колонн, внутренние поверхности полки которых практически параллельны. Форма, имеющая по существу тот же номинальный вес и размеры, что и форма «W», указанная в таблице, но внутренние поверхности полки которой не параллельны, также может считаться формой «W», имеющей ту же номенклатуру, что и форма, указанная в таблице, при условии, что ее средняя полка Толщина по существу такая же форма, как толщина фланца формы «W».

Профили «S» представляют собой профили с двойной симметрией, изготовленные в соответствии со стандартами размеров, принятыми в 1896 году Ассоциацией американских производителей стали для форм балок американского стандарта. Существенной частью этих стандартов является то, что внутренние поверхности полки балок американского стандарта имеют наклон примерно 16 2/3%.

Профили «M» — это профили с двойной симметрией, которые не могут быть классифицированы как профили «W», «S» или несущие сваи. (Хотя несущие сваи не включены в стандартную номенклатурную таблицу, они представляют собой двойную симметричную форму с широкими полками, внутренние поверхности полки которых практически параллельны, а полка и стенка имеют практически одинаковую толщину.)

Профили «С» представляют собой швеллеры, изготовленные в соответствии со стандартами размеров, принятыми в 1896 году Ассоциацией американских производителей стали для швеллеров американского стандарта. Существенной частью этих стандартов является то, что внутренние поверхности фланцев каналов американского стандарта имеют наклон приблизительно 16 2/3%.

Формы «MC» — это каналы, которые нельзя классифицировать как формы «C».

Стандартная длина 20 и 30 футов

Характеристики | Анализ | Приложения | Механические свойства | Свариваемость

Технические характеристики

org/PropertyValue”>
org/PropertyValue”>
org/PropertyValue”>
org/PropertyValue”>
org/PropertyValue”>

А
Н/Д 2 дюйма

Б
Н/Д 1 дюйм

С
Н/Д 3/16 дюйма

Расчетный вес на фут
Н/Д 2,57 фунта

Расчетный вес 20 футов. Длина
Н/Д 51,4 фунта

Расчетный вес 30 футов. Длина
Н/Д 77,1 фунта

Анализ

org/PropertyValue”>

Н/Д Углерод .26 Макс.
Фосфор .04 Макс.
Сера 0,05 Макс.

Приложения

Н/Д Для использования в клепаных, болтовых или сварных конструкциях мостов и зданий, а также для общих строительных целей.

Механические свойства

Н/Д Требования ASTM A 36:
Прочность на растяжение — 58 000/80 000 фунтов на квадратный дюйм
Предел текучести — 36 000 мин. psi
Удлинение на 8 дюймов – мин. 20% (при условии вычета из указанного выше процента удлинения для толщин менее 5/16 дюйма и более 3/4 дюйма)

Свариваемость

org/PropertyValue”>

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

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

Я понял несколько вещи с вашим кодом.

Согласно обратной трассировке, вы используете модель Unet на основе реснета.

Ваша текущая модель forward Метод определяется как:

 def forward(self, x):
    #conv1 = self.conv1(x)
    #conv2 = self.conv2(conv1)
    conv2 = self.conv2(x)
    conv3 = self.conv3(conv2)
    conv4 = self.conv4(conv3)
    conv5 = self.conv5(conv4)
    ...
 

Ваша ошибка исходит от self.conv2(x) , потому что conv2 принимает матрицу с количеством каналов 64. Значит чего-то не хватает, или.. закомментировано 🙂

Путем изменения

 #conv1 = self.conv1(x)
    #conv2 = self.conv2(conv1)
    conv2 = self.conv2(x)
 

в

 conv1 = self.conv1(x)
    conv2 = self.conv2(conv1)
 

Решит проблему 64 каналов на входе. Но есть еще одна проблема:

Использование ввода (B,1,H,W), независимо от того, что такое B, H и W, будет невозможно с вашей текущей архитектурой. Почему ? Из-за этого:

 resnet34 = torchvision.models.resnet34(pretrained=False)
resnet101 = torchvision.models.resnet101 (предварительно обученный = False)
resnet152 = torchvision. models.resnet152 (предварительно обученный = False)
печать (resnet34.conv1)
-> Conv2d(3, 64, kernel_size=(7, 7), шаг=(2, 2), заполнение=(3, 3), смещение=ложь)
печать (resnet101.conv1)
-> Conv2d(3, 64, kernel_size=(7, 7), шаг=(2, 2), заполнение=(3, 3), смещение=ложь)
печать (resnet152.conv1)
-> Conv2d(3, 64, kernel_size=(7, 7), шаг=(2, 2), заполнение=(3, 3), смещение=ложь)
 

В любом случае уровень conv1 resnet принимает 3-канальный ввод.

После того, как вы внесли эти изменения, вы также должны попробовать свою сеть на фиктивном примере, например:

 model = UNetResNet(34,num_classes=2)
выход = модель (факел.ранд (4,3,1920,1920))
печать (внешняя форма)
-> (4,2,1920,1920) | (batch_size, num_classes, H, W)
 

Почему здесь ширина и высота одинаковы? Потому что ваша текущая архитектура поддерживает только квадратные изображения.

Например:

 -> (1080,1920) = затемнение несоответствия во время конкатенации
-> (1920,1920) = успех
-> (108,192) = затемнение несоответствия во время конкатенации
-> (192 192) = успех
 

Заключение:

  • Измените свою сеть, чтобы принимать изображения в градациях серого, если ваш набор данных состоит из изображений в градациях серого.
  • Предварительно обработайте изображения, чтобы ширина была равна высоте.
 класс UNetResNet(nn.Module):
    def __init__(self, encoder_depth, num_classes, num_filters=32, dropout_2d=0.2,
                 предварительно обученный = False, is_deconv = False):
        супер().__инит__()
        self.num_classes = количество_классов
        self.dropout_2d = выпадение_2d
        если кодировщик_глубина == 34:
            self.encoder = torchvision.models.resnet34 (предварительно обученный = предварительно обученный)
            нижний_канал_nr = 512
        Элиф encoder_depth == 101:
            self.encoder = torchvision.models.resnet101 (предварительно обученный = предварительно обученный)
            нижний_канал_nr = 2048
        elif encoder_depth == 152:
            self.encoder = torchvision.models.resnet152 (предварительно обученный = предварительно обученный)
            нижний_канал_nr = 2048
        еще:
            поднять NotImplementedError («Реализованы только версии Resnet 34, 101, 152»)
        self. pool = nn.MaxPool2d(2, 2)
        self.relu = nn.ReLU (inplace = True)
        #self.conv1 = nn.Sequential(self.encoder.conv1,
        # self.encoder.bn1,
        # self.encoder.relu,
        # селф.пул)
        self.conv1 = nn.Sequential(nn.Conv2d(1,64,kernel_size=(7,7),stride=(2,2),padding=(3,3),bias=False), # 1 Здесь для изображения в градациях серого, замените на 3, если вам нужен RGB/BGR
                                   nn.BatchNorm2d(64),
                                   nn.ReLU(),
                                   селф.пул
                                )
        
        self.conv2 = self.encoder.layer1
        self.conv3 = self.encoder.layer2
        self.conv4 = self.encoder.layer3
        self.conv5 = self.encoder.layer4
        self.center = DecoderBlockV2 (номер_нижнего_канала, количество_фильтров * 8 * 2, количество_фильтров * 8, is_deconv)
        self.dec5 = DecoderBlockV2 (номер_нижнего_канала + количество_фильтров * 8, количество_фильтров * 8 * 2, количество_фильтров * 8, is_deconv)
        self. dec4 = DecoderBlockV2 (номер_нижнего_канала // 2 + количество_фильтров * 8, количество_фильтров * 8 * 2, количество_фильтров * 8,
                                   is_deconv)
        self.dec3 = DecoderBlockV2 (номер_нижнего_канала // 4 + количество_фильтров * 8, количество_фильтров * 4 * 2, количество_фильтров * 2,
                                   is_deconv)
        self.dec2 = DecoderBlockV2 (номер_нижнего_канала // 8 + количество_фильтров * 2, количество_фильтров * 2 * 2, количество_фильтров * 2 * 2,
                                   is_deconv)
        self.dec1 = DecoderBlockV2 (число_фильтров * 2 * 2, число_фильтров * 2 * 2, число_фильтров, is_deconv)
        self.dec0 = ConvRelu (количество_фильтров, число_фильтров)
        self.final = nn.Conv2d (число_фильтров, число_классов, размер_ядра = 1)
    защита вперед (я, х):
        conv1 = self.conv1(x)
        conv2 = self.conv2(conv1)
        conv3 = self.conv3(conv2)
        conv4 = self.conv4(conv3)
        conv5 = self.conv5(conv4)
        пул = self.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *