Швеллер 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 футов
Характеристики | Анализ | Приложения | Механические свойства | Свариваемость
Технические характеристики
А | Н/Д 2 дюйма |
Б | Н/Д 1 дюйм |
С | Н/Д 3/16 дюйма |
Расчетный вес на фут | Н/Д 2,57 фунта |
Расчетный вес 20 футов. Длина | Н/Д 51,4 фунта |
Расчетный вес 30 футов. Длина | Н/Д 77,1 фунта |
Анализ
Н/Д
Углерод .26 Макс. |
Приложения
Н/Д Для использования в клепаных, болтовых или сварных конструкциях мостов и зданий, а также для общих строительных целей. |
Механические свойства
Н/Д
Требования ASTM A 36: |
Свариваемость
Н/Д Эти формы легко свариваются всеми способами сварки, а полученные сварные швы и соединения имеют исключительно высокое качество. Марка используемой сварочной проволоки зависит от толщины сечения, конструкции, требований к обслуживанию и т. д. |
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.