AttributeError: module ‘torch‘ has no attribute ‘square

mmdet/core/bbox/coder/obb/midpoint_offset_coder.py文件中第125行:

diag_len = torch.sqrt(torch.square(center_polys[..., 0::2]) + 
torch.square(center_polys[..., 1::2]))

1.10版本以下的torch没有设置torch.square()这个函数,手动改成两个相同元素做torch.mul()就可以正常运行,即:

diag_len = torch.sqrt(
        torch.mul(center_polys[..., 0::2], center_polys[..., 0::2]) +
        torch.mul(center_polys[..., 1::2], center_polys[..., 1::2]))
``` class GaussSwish(nn.Module): def __init__(self, c=1): super(GaussSwish, self).__init__() self.c = c def forward(self, x): return x * torch.sigmoid(x - self.c) class MLP(nn.Module): def __init__( self, input_dim=3, hidden_dim=64, num_layers=8, dropout=0.1 # 添加Dropout ): super(MLP, self).__init__() layers = [] # 输入层 layers.append(nn.Linear(input_dim, hidden_dim)) #layers.append(nn.BatchNorm1d(hidden_dim)) #layers.append(nn.Dropout(dropout)) # 中间隐藏层(实现激活函数过渡) total_hidden = num_layers - 2 # 总隐藏层数 for layer_idx in range(total_hidden): # 线性层 + 归一化 layers.append(nn.Linear(hidden_dim, hidden_dim)) #layers.append(nn.BatchNorm1d(hidden_dim)) # 渐进式激活函数选择 if layer_idx < total_hidden // 3: act = nn.Tanh() elif layer_idx < 2 * (total_hidden // 3): act = nn.Hardswish()#nn.SiLU() # Swish else: act = GaussSwish() layers.append(act) layers.append(nn.Dropout(dropout)) # 输出层 layers.append(nn.Linear(hidden_dim, 1)) self.net = nn.Sequential(*layers) self._init_weights() def _init_weights(self): for m in self.modules(): if isinstance(m, nn.Linear): if isinstance(m.act, nn.Tanh): # 假设act属性存在 nn.init.xavier_normal_(m.weight, gain=5 / 3) # Tanh推荐增益值 elif isinstance(m.act, (nn.Hardswish, GaussSwish)): nn.init.kaiming_normal_(m.weight, mode='fan_in', nonlinearity='swish') else: nn.init.xavier_uniform_(m.weight) if m.bias is not None: nn.init.constant_(m.bias, 0) def forward(self, x): return self.net(x) # 定义非稳态热传导模型的损失函数(包含动态权值) def loss_function(predicted, target, dynamic_weight): return torch.mean(dynamic_weight * torch.square(predicted - target))```AttributeError: 'Linear' object has no attribute 'act'
03-20
我现在的版本号是Keras version: 3.10.0 TensorFlow version: 2.19.0 然后报错如下: AttributeError Traceback (most recent call last) Cell In[20], line 47 6 callbacks = [ 7 # 早停回调:当验证损失10个epoch未改善(变化<0.0001)时终止训练 8 # 参数说明: (...) 37 tf.keras.callbacks.TensorBoard(log_dir=path_for_logs) 38 ] 40 # 执行模型训练 41 # 参数说明: 42 # finalaugimg - 增强后的训练图像数据(形状应为(num_samples, 512, 512, 1)) (...) 45 # batch_size=7 - 较小批量,适用于显存有限情况(建议根据GPU容量调整) 46 # epochs=100 - 最大训练轮次(实际可能因早停提前终止) ---> 47 results = model.fit(finalaugimg, 48 finalaugmask/255, # 标签归一化操作(若标签为0/1应跳过) 49 validation_split=0.1, 50 batch_size=7, 51 epochs=10, 52 callbacks=callbacks) File ~\AppData\Roaming\Python\Python39\site-packages\keras\src\utils\traceback_utils.py:122, in filter_traceback.<locals>.error_handler(*args, **kwargs) 119 filtered_tb = _process_traceback_frames(e.__traceback__) 120 # To get the full stack trace, call: 121 # `keras.config.disable_traceback_filtering()` --> 122 raise e.with_traceback(filtered_tb) from None 123 finally: 124 del filtered_tb Cell In[18], line 33, in focal_loss.<locals>.focal_loss_fixed(y_true, y_pred) 30 pt_0 = tf.where(tf.equal(y_true, 0), 1 - y_pred, tf.ones_like(y_pred)) # 修正负样本pt计算 32 # 计算正样本损失项 ---> 33 pos_loss = -K.mean(alpha * K.pow(1. - pt_1, gamma) * K.log(pt_1 + K.epsilon())) 35 # 计算负样本损失项(修正后) 36 neg_loss = -K.mean((1 - alpha) * K.pow(1. - pt_0, gamma) * K.log(pt_0 + K.epsilon())) # 使用修正后的pt_0 AttributeError: module 'keras.backend' has no attribute 'mean'
最新发布
08-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值