• 152 主题
    200 帖子

    本人想找个合伙人一起做项目 利润极为可观 有想法的朋友可以加q2021214926

  • 66 主题
    227 帖子

    希望有人能反應此問題

  • 11 主题
    29 帖子
  • 4 主题
    8 帖子

    这个界面比 Flarum 高级不少。
    目前正在内测,链接不能公开,想要的站内私信我。
    2c0989f4-7f72-49a4-a5e4-d1ca5399ede7-image.png
    3f0bd1f4-bae0-4760-8d41-4ef344085211-image.png

  • 摸鱼 、讨论、创意分享

    256 主题
    508 帖子

    2024年6月21日--6月23日,华为在中国·东莞举办的为期三天的华为开发者大会(HDC)圆满落幕,大会中发布了鸿蒙生态的最新进展。HarmonyOS从2019年8月9日正式发布,历经4代升级,鸿蒙生态设备数量已超过9亿,已有254万 HarmonyOS开发者投入到鸿蒙世界的开发中来,5000多个常用应用已全部启动开发,其中超过1500家已完成上架,短短五年,鸿蒙生态这块沃土已然成熟,千行万业的伙伴也在积极簇拥着加入生态。

    从本次大会最新进展可以看到:HarmonyOS 真正实现了一个系统,统一所有设备生态,打通多设备、多场景,实现了平板、手机、座舱、IoT设备万物互联。作为与人们生活息息相关的出行导航领域,目前常用应用中已有300+个出行类应用启动了鸿蒙原生应用开发,覆盖全国34个省域,涉及公交地铁、地图、导航、租车、航空出行等场景的应用,其中HDC展台上展示了完成创新特性开发的鸿蒙原生应用:滴滴出行、高铁管家、智行火车票、车来了、哈啰、苏e行、Earth元地球、奥维互动地图、青岛地铁、 掌上公交、巴士管家、北京一卡通。借助HarmonyOS NEXT原生能力优势,出行导航类应用进一步打破了场景及硬件之间的隔阂,实现了出行相关信息及服务在手机、平板、手表等多终端间的无缝流转与跨端协同,以导航为例,用户出门前在手机上导航好目的地路线后,用户出门后,可以随时切换到手表、平板等终端设备查看导航路线和出行信息。

    大会上我们看到华为将多年积累的AI能力应用于鸿蒙原生应用中,带来了全新的鸿蒙原生智能体验,其中,Earth元地球App集成了小艺语音,实现用户问询小艺关于地理位置信息或卫星图相关信息时,直接弹出Earth元地球飞向该位置并呈现具体延展信息。此外,其利用原生的全场景多端流转能力,手机端App上查看地球实景,可同步在智慧屏显示,解决了线下教育等场景的手机端和大屏幕交互展示问题,我们看到桌面卡片上也会显示关注区域的卫星遥感数据是否有卫星拍摄,提升App的易用性和便捷性。

    作为苏州规划交通集团推出的官方App,“苏e行”借助小艺语音助手可以直接唤醒乘车码,免去了打开应用-找到二维码-扫码的繁琐步骤,方便用户快速进出站,用户也可以在进站时语音查询苏州地铁拥挤程度,快速获悉地铁动态,调整出行方案。

    同样,涵盖了公共交通、商业消费、政府管理、创新应用4大领域28个行业广泛应用的“北京一卡通”依托鸿蒙全场景多设备高效协同的特性,构建了集NFC手机一卡通、乘车码、高校电子学生卡等诸多功能于一体的智能服务网络,提供了涵盖数字支付、数字民生等不同应用场景的智慧化服务。4月份,“北京一卡通”已全面开启基于HarmonyOS NEXT的全新智能电子交通卡产品——玲珑通卡的适配研发工作。该卡在HarmonyOS NEXT上线后,系统将根据卡内余额实时状态为用户自动补值,解决用户需要经常关注余额并充值的困扰。

    得益于HarmonyOS NEXT原生智能能力,出行导航类的鸿蒙原生应用会根据用户的使用习惯、位置、时间等数据,更精准的洞察并理解用户的需求,更“恰到好处”地为用户提供服务,并基于HarmonyOS NEXT原生易用和原生安全的优势,守护用户个人安全隐私信息的同时简化用户出行App操作步骤,为用户带来更简化的操作以及更放心、安全的出行体验。

    随着千行万业“鸿蒙化”浪潮的汹涌而来,越来越多的应用正在利用HarmonyOS的创新技术能力和生态优势,深度融入工作和生活场景,精准解决业务痛点,为用户带来更智能、更高效、更便捷的体验及服务。未来,我们期待鸿蒙生态能与更多垂直领域进行深度融合,激发出更多的创新火花,助力各行业实现前所未有的价值提升与效率飞跃。

  • 技术交流

    234 主题
    520 帖子
    code_text ```import torch import torch.nn as nn import torch.nn.functional as F import numpy as np import pandas as pd from torch.utils.data import DataLoader, TensorDataset from sklearn.preprocessing import StandardScaler class PositionalEncoding(nn.Module): def __init__(self, d_model, max_len=5000, dropout=0.2): super(PositionalEncoding, self).__init__() self.dropout = nn.Dropout(p=dropout) pe = torch.zeros(max_len, d_model) position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1) div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-np.log(10000.0) / d_model)) pe[:, 0::2] = torch.sin(position * div_term) pe[:, 1::2] = torch.cos(position * div_term) pe = pe.unsqueeze(0).transpose(0, 1) self.register_buffer('pe', pe) def forward(self, x): x = x + self.pe[:x.size(0), :] return self.dropout(x) class TransformerRegressionModel(nn.Module): def __init__(self, input_dim, num_heads, num_layers, output_dim, dropout=0.25): super(TransformerRegressionModel, self).__init__() self.pos_encoder = PositionalEncoding(input_dim, dropout=dropout) encoder_layer = nn.TransformerEncoderLayer(input_dim, num_heads, dim_feedforward=input_dim * 4, activation='relu', dropout=dropout) self.transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers) decoder_layer = nn.TransformerDecoderLayer(input_dim, num_heads, dim_feedforward=input_dim * 4, activation='relu', dropout=dropout) self.transformer_decoder = nn.TransformerDecoder(decoder_layer, num_layers) self.output_layer = nn.Linear(input_dim, output_dim) self._init_weights() def _init_weights(self): for m in self.modules(): if isinstance(m, nn.Linear): nn.init.xavier_uniform_(m.weight) if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.TransformerEncoderLayer) or isinstance(m, nn.TransformerDecoderLayer): for param in m.parameters(): if param.dim() > 1: nn.init.xavier_uniform_(param) def forward(self, src, tgt): src = self.pos_encoder(src) # (sequence_length, batch_size, input_dim) tgt = self.pos_encoder(tgt) # (sequence_length, batch_size, input_dim) memory = self.transformer_encoder(src) # (sequence_length, batch_size, input_dim) out = self.transformer_decoder(tgt, memory) # (sequence_length, batch_size, input_dim) out = self.output_layer(out) # 输出层 return out # 获取数据 file_path = "C:\\python\\soc_model\\train_data\\train1" data = pd.read_csv(file_path) # 特征和目标 x = data[['Current_(mA)', 'Voltage_(V)']].values scaler = StandardScaler() y_true = data['Capacity_(Ah)'].values x_normalized = scaler.fit_transform(np.abs(x)) # Normalize the feature data # Convert to PyTorch tensors x_tensor = torch.tensor(x_normalized, dtype=torch.float32) y_tensor = torch.tensor(y_true, dtype=torch.float32).view(-1, 1) # 创建数据集 train_dataset = TensorDataset(x_tensor, y_tensor) # 创建数据加载器 train_dataloader = DataLoader(train_dataset, batch_size=1, shuffle=False) # 超参数配置 input_dim = 2 # 输入特征数量 output_dim = 1 # 输出特征数量 num_heads = 2 # 注意力头数量 num_layers = 6 num_epochs = 100 # 检查 GPU 可用性 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # 初始化模型 model = TransformerRegressionModel(input_dim, num_heads, num_layers, output_dim).to(device) # 定义损失函数和优化器 criterion = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.000001) scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, patience=5, factor=0.5, mode='min') # 提前停止策略 patience = 5 best_loss = float('inf') patience_counter = 0 # 训练模型 model.train() for epoch in range(num_epochs): epoch_loss = 0.0 previous_y = None # 保存上一时刻的预测值 predicted = [] for i, (current_x, current_y) in enumerate(train_dataloader): current_x, current_y = current_x.to(device), current_y.to(device) # 如果需要,可以调整 current_x 的维度 current_x = current_x.unsqueeze(0) # (1, batch_size, input_dim) if i == 0: # 第一个时间步,初始化目标序列 tgt 为 0 tgt = torch.zeros_like(current_y).unsqueeze(0).to(device) # (1, batch_size, input_dim) else: # 使用上一时刻的预测值作为目标序列 tgt = previous_y.unsqueeze(0) # 使用当前时刻的输入和上一时刻的输出进行预测 predicted_y = model(current_x, tgt) print(predicted_y) predicted.append(predicted_y) # 保存当前时刻的预测值以供下一时刻使用 previous_y = predicted_y.squeeze(0).detach() # 计算损失 loss = criterion(predicted_y, current_y.unsqueeze(0)) epoch_loss += loss.item() # 反向传播和优化 optimizer.zero_grad() loss.backward() optimizer.step() scheduler.step(epoch_loss) print(f"Epoch [{epoch + 1}/{num_epochs}], Loss: {epoch_loss:.4f}") if epoch_loss < best_loss: best_loss = epoch_loss patience_counter = 0 torch.save(model.state_dict(), "transformer_model.pth1") print("Model saved.") else: patience_counter += 1 if patience_counter >= patience: print("Early stopping triggered.") break

    code_text

    import torch import torch.nn as nn import torch.nn.functional as F import numpy as np import pandas as pd from torch.utils.data import DataLoader, TensorDataset from sklearn.preprocessing import StandardScaler class PositionalEncoding(nn.Module): def __init__(self, d_model, max_len=5000, dropout=0.2): super(PositionalEncoding, self).__init__() self.dropout = nn.Dropout(p=dropout) pe = torch.zeros(max_len, d_model) position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1) div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-np.log(10000.0) / d_model)) pe[:, 0::2] = torch.sin(position * div_term) pe[:, 1::2] = torch.cos(position * div_term) pe = pe.unsqueeze(0).transpose(0, 1) self.register_buffer('pe', pe) def forward(self, x): x = x + self.pe[:x.size(0), :] return self.dropout(x) class TransformerRegressionModel(nn.Module): def __init__(self, input_dim, num_heads, num_layers, output_dim, dropout=0.25): super(TransformerRegressionModel, self).__init__() self.pos_encoder = PositionalEncoding(input_dim, dropout=dropout) encoder_layer = nn.TransformerEncoderLayer(input_dim, num_heads, dim_feedforward=input_dim * 4, activation='relu', dropout=dropout) self.transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers) decoder_layer = nn.TransformerDecoderLayer(input_dim, num_heads, dim_feedforward=input_dim * 4, activation='relu', dropout=dropout) self.transformer_decoder = nn.TransformerDecoder(decoder_layer, num_layers) self.output_layer = nn.Linear(input_dim, output_dim) self._init_weights() def _init_weights(self): for m in self.modules(): if isinstance(m, nn.Linear): nn.init.xavier_uniform_(m.weight) if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.TransformerEncoderLayer) or isinstance(m, nn.TransformerDecoderLayer): for param in m.parameters(): if param.dim() > 1: nn.init.xavier_uniform_(param) def forward(self, src, tgt): src = self.pos_encoder(src) # (sequence_length, batch_size, input_dim) tgt = self.pos_encoder(tgt) # (sequence_length, batch_size, input_dim) memory = self.transformer_encoder(src) # (sequence_length, batch_size, input_dim) out = self.transformer_decoder(tgt, memory) # (sequence_length, batch_size, input_dim) out = self.output_layer(out) # 输出层 return out # 获取数据 file_path = "C:\\python\\soc_model\\train_data\\train5" data = pd.read_csv(file_path) # 特征和目标 x = data[['Current_(mA)', 'Voltage_(V)']].values scaler_x = StandardScaler() x_normalized = scaler_x.fit_transform(x) x = np.abs(x) y_true = data['Capacity_(Ah)'].values # 将数据转换为 PyTorch 张量 x_tensor = torch.tensor(x_normalized, dtype=torch.float32) # 创建数据集 test_dataset = TensorDataset(x_tensor) # 创建数据加载器 test_data = DataLoader(test_dataset, batch_size=1, shuffle=False) # 超参数配置 input_dim = 2 # 输入特征数量 output_dim = 1 # 输出特征数量 num_heads = 2 # 注意力头数量 num_layers = 6 num_epochs = 100 # 检查 GPU 可用性 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # 初始化模型 model = TransformerRegressionModel(input_dim, num_heads, num_layers, output_dim).to(device) model.load_state_dict(torch.load('transformer_model.pth1')) # 预测流程 # 推理 predicted = [] with torch.no_grad(): for i, (current_x,) in enumerate(test_data): current_x = current_x.to(device) current_x = current_x.unsqueeze(1) # 增加 seq_len 维度 # 初始化目标序列 tgt if i == 0: tgt = torch.zeros(current_x.size(0), 1, current_x.size(2)).to(device) else: tgt = predicted_y.unsqueeze(1) # 作为下一步的目标序列 # 执行预测 predicted_y = model(current_x, tgt) print(current_x) print(tgt) # 提取最后一个时间步的预测值 predicted_y = predicted_y[:, -1, :] # (batch_size, output_dim) # 保存预测结果 predicted.append(predicted_y.cpu().numpy()) # 转换为 NumPy 数组 predicted = np.array(predicted).squeeze() **真心求助,为什么预测时输出的结果的相同**
  • 源码分享

    114 主题
    182 帖子

    搜一下:bypass