-
Model-Based算法适合对象环境相对简单明确、能够进行机理建模的系统,如机器人、工业制造系统,这类算法在采样效率、收敛速度等关键性能上体现出了优势。而Model-Free算法则表现出更广泛的适应性,绝大部分环境不需要对算法进行适配,基本上只要满足接口,就可以做到即插即用。因此,对于大多数环境,特别是复杂性较高、难以建模的环境,如游戏等,可以直接用Model-Free算法尝试。在Model-Free算法中,根据动作取决于策略函数的输出,还是值函数输出的最大值,可以分出策略梯度和价值函数拟合两大类算法。
-
强化学习算法选择在机器学习中,数据不同会导致算法表现不同。同样地,在强化学习中,由于目标环境的多样性,算法在不同环境中表现截然不同。另外,结合业务场景,开发者在其他维度(如算法输出动作的连续性或离散性、算法的学习效率等)上可能还有不同的要求。因此,选择合适的强化学习算法是一个很重要的工作。根据环境是否由模型直接描述,强化学习算法可以分为Model-Free算法和Model-Based算法。Model-Based算法包括Dagger、PILCO、I2A、MBMF、STEVE、MB-MPO、AlphaZero、ExpertIteration等。当智能体所处环境是确定的,且开发者对环境建模感到并不困难时,建议开发者选择Model-Based算法。Model-Based算法先从强化学习主体与环境交互得到的数据中通过监督学习的方式学习环境模型,然后基于学习到的环境模型进行策略优化。在环境简单、观测状态维度较低时,PILCO可以显著提升采样效率,但由于其使用高斯过程回归模型对环境进行建模,模型复杂度随着状态维度指数增长,因此PILCO难以应用于复杂环境。STEVE和MBMPO使用模型集成的方式来表征模型的不确定性,能够有效地将模型推广到高维状态空间。STEVE使用值展开的方式将环境模型与Model-Free算法相结合,当环境无法学习时能够退化为Model-Free算法。MB-MPO利用元学习的方法在环境模型的集成中学习到足够鲁棒的自适应策略,该方法的策略优化过程完全基于环境模型生成想象样本,因此MB-MPO采样效率很高,但当环境难以建模时策略将无法学习。
-
其他机器学习任务还包括关联规则分析、异常检测和个性化推荐等。关联规则分析常用的经典算法有Apriori算法和FP-Growth(频繁项增长)算法,后者在计算速度上更快。异常检测、新样本检测算法用于发现异常数据点的新的数据点,常用算法有OneClassSVM、LocalOutTierFactor等。OneClassSVM适用于数据量少的情况,对于高维度特征和非线性问题可以体现其优势。LocalOutTierFactor对数据分布的假设较弱,对于数据分布不满足假设的情况,建议使用这种算法。推荐场景下,一般都是高维稀疏数据,可以采用特征学习与逻辑回归相结合的方法,也可以尝试FM(因式分解机)及其深度学习版本DeepFM。此外,还需要从数据标注量的角度来考虑采用哪些算法。有些场景下,标签数据是自动获取的。如销售量预估场景下,随着时间的推移,真实的销量结果会不断产生,可以用于时序模型的持续迭代。很多场景下,标注未必是准确的,如对于某网站的评论区文本分类问题,用户的反馈可能是带有不准确性的。还有很多时候,标注量严重不足,尤其在医疗等行业。针对这些问题,就需要采用半监督、弱监督学习方法。但是,半监督、弱监督也都代表的是学习策略,本质上还是要与每类算法(机器学习、计算机视觉、自然语言处理等)相结合才可以发挥作用。
-
时序预测任务中的传统算法有ARMA和NARMA等,随着机器学习和深度学习的发展,基于SVM、神经网络等的方法也开始流行起来。近年基于深度学习的时间序列预测主要以循环神经网络为主(如DeepAR等),其提高了多变量时间序列的精度,但是在大规模分布式并行方面时间序列预测有不少的挑战。基于CNN架构的时间卷积网络TCN的计算复杂度更低,性能更好。另外,如果要解决长时间的序列预测问题,建议采用基于注意力机制的Transformer模型。概率图模型通过在模型中引入隐变量,增强了模型的建模能力。混合高斯模型、隐马尔可夫模型、条件随机场都属于概率图模型。概率图模型可以用于分类、聚类、时序预测任务,如相关向量机和朴素贝叶斯可以用于分类任务;隐马尔可夫模型和线性动力系统可以对序列化数据进行建模;混合高斯模型常用于聚类任务。概率图模型可以为模型和预测结果提供概率解释。由于经典机器学习在实际应用过程中需要结合业务领域知识构建特征工程,这个过程中有很多手工工作,因此深度学习方法在不同任务的算法中使用深度多层神经网络从原始数据中学习更好的特征表示,取得了比原始算法更好的效果。传统决策树也可以与深度学习思想(不是深度神经网络)相结合,如DeepForesto机器学习领域目前正在朝着AutoML(自动机器学习)的方向发展,很多著名的机器学习算法库(如sciklt-learn)都演进出了自动版(如Auto-sklearn)
-
2024年4月21日,华为云开发者联盟携手HCDG大连核心组猿族学习会,举办 “HCDG城市行大连站—AI机器视觉技术研讨会”在大连圆满结束。活动汇聚了二十多位企业及开发者代表,深入探讨AI机器视觉在千行百业的实践与应用,共同迎接人工智能化新时代的到来。猿族学习会是大连的公益性IT前沿技术学习型组织,已在大连成功举办过十余场AI开发主题沙龙活动,组织者Robin是HCDG大连站优秀的核心组成员。本次HCDG大连站沙龙活动分为三大主题:华为云ModelArst助力企业AI创新和应用;多标签检测技术介绍;从图像风格迁移到GAN。猿族学习会负责人Robin带来了华为云ModelArts的主题分享,为了实现AI算力的极致性能,华为云在基础设施之上进行了针对AI云服务的技术优化。比如ModelArts提供了数据、训练、推理三层加速,通过DataTurbo数据加速技术能够利用计算节点存储资源构建分布式缓存,将数据读取时延降低至亚毫秒级。目前,华为云ModelArts提供物体检测、图像分类、预测分析和声音分类四类开发项目。现场开发者表示,ModelArts在AI、深度学习发展如火如荼的当下,一站式的开发平台能够帮助用户快速创建和部署模型,管理全周期AI工作流,希望华为云能继续,给国产软件的前进提供了强劲动力。大连日企技术部专家陈舒扬带来了《从图像风格迁移到GAN》主题分享,介绍了CNN的新思路、图像风格迁移的路径、生成对抗网络等内容,并对拟合图像和风格、生成手写数字等场景下的技术演示。来自某国内知名汽车企业的工程师周海龙长期从事机器学习工作,此次活动他带来了《多标签检测技术介绍》,为在场开发者对于多分类、多任务、多标签等形式的机器学习,进行了详细的演示。▲ 开发者用华为云ModelArts图像风格迁移功能生成的图片▲ 大连开发者在本地体验ModelArts未来,华为云将持续通过技术与应用场景的融合,在大连这片山海热土上,与众多优秀的开发者一起,共同为千行百业创造价值HCDG(Huawei Cloud Developer Group 华为云开发者社区组织),是基于城市圈和技术圈,由开发者核心组自发开展的开放、创新、多元的社区技术交流组织。致力于帮助开发者学习提升、互动交流、挖掘合作,推动技术应用与本地产业结合、数智化转型和开发者文化发展。扫描下方二维码加入华为云HCDG▼▼▼
-
聚类任务中最常用的算法是K-means、基于图的聚类算法及混合模型。聚类任务存在两个问题,不同的初始中心点对最后聚类结果的影响非常大,聚类簇数量不容易提取判断。Kmeans通过改进初始中心点的选择来改善Kmeans算法的聚类效果。基于密度的聚类算法,如DBSCAN算法,不需要提前知道聚类簇数量。基于图的聚类算法有谱聚类和近邻传播。谱聚类利用相似度矩阵的特征向量进行聚类。近邻传播的基本思想是将数据样本点看作网络的节点,然后通过网络中各边的消息传递计算出各样本的聚类中心。与传统的聚类算法相比,近邻传播算法特别适合高维、多类数据的快速聚类,在聚类性能和效率方面都有大幅度的提升。基于混合模型的聚类方法则假设每组数据都可以通过一个模型来拟合,该方法的好处是最后的聚类结果会给出样本属于每个聚类簇的概率。常见的混合模型有GMM(高斯混合模型)和LDA(隐狄利克雷分布模型)。以上聚类算法在处理高维数据时会面临很多问题。为了解决这些问题,建议采用了空间聚类和多视角聚类的方法。总结,在提前知道聚类簇的数量时,以上聚类算法都可适用,否则可选的算法只有DBSCAN和近邻传播;如果聚类结果需要知道样本属于每个聚类簇的概率,则选择基于混合模型的聚类方法;对于高维数据的聚类,空间聚类和多视角聚类是首选方法。
-
决策树通过递归划分样本特征空间并在每个得到的特征空间区域定义局部模型来做预测。决策树方法的优点是易于理解,数据预处理过程比较简单,同时在相对短的时间内就可以在大数据集上得到可行且效果良好的结果。决策树是非常基础的算法,可解释性强,但它缺点也比较明显,对连续性的特征比较难预测。当数据特征关联性比较强时,决策树的表现的不会太好。通常,决策树需要与集成学习方法一起使用,才会有较好的精度。随机森林、GBDT等算法已经在工业界广泛使用。总结,当处理的问题是二分类问题且数据集规模不大时,支持向量机是首选算法;如果支持向量机的效果不是很理想,则可能是因为该矩阵不能很好地度量样本之间的相似性,因此可以尝试度量学习算法。对于数据集比较大的情况,首先选择基于决策树的集成学习方法。当然,其他不同的模型也都可以与不同的集成学习策略相结合,进一步提升模型效果,但集成学习通常也会使模型更加复杂,增加训练和推理的计算成本。
-
常用的机器学习算法分为分类、聚类、时序预测、关联分析、推荐等。下面将分别按照任务维度简要介绍一些常用的算法,旨在为开发者提供算法选择的参考。在分类任务中,逻辑回归算法实现简单,经常被作为性能基线与其他算法比较。逻辑回归算法也可以看作是一层神经网络,由于其计算复杂度低,经常被拓展到更加复杂的问题上,如大规模推荐。而支持向量机擅长解决高维度非线性分类问题。支持向量机模型的汁算复杂度是数据集的二次方,因此不适合处理大规模数据。逻辑回归、支持向量机在多分类场景下的应用需要依赖一些额外的技巧,如与集成学习相结合等。最初的KNN算法不需要训练,它直接根据邻近的有标签数据的投票来对未知标签数据进行分类。然而,在实际应用中,由于数据样本的距离度量方式是不可知的,所以KNN算法需要在常用的几个距离度量方式中去选择并学习合适的度量方式,这时就需要训练。度量学习的目的是学习一个度量矩阵,使得在某度量方式下,数据中同类样本之间的距离尽可能减小,而不同类别样本之间的距离尽可能增大。常用的度量学习方法分为全局度量学习和局部度量学习。深度学习也可以与度量学习相结合,利用深度神经网络自适应学习特征表达,当数据量较多时,推荐使用深度度量学习。深度度量学习己经成功用于人脸识别等领域。
-
人工智能技术包含多个领域,每个领域的算法都非常多,而且每年还有层出不穷的新算法出现。在开发一个人工智能应用之前,有必要结合具体业务场景和数据的可获取情况,快速锁定一些合适的算法,这样可以大大提升应用开发效率。在找到合适的算法之后,可以直接订阅ModelArts预置算法开始训练,也可以自行开发和调试算法代码,然后再训练。基础层算法选择对于应用开发者而言,平时接触最多的基础算法应该是机器学习(包括深度学习)和强化学习。
-
CNN-VIT 视频动态手势识别人工智能的发展日新月异,也深刻的影响到人机交互领域的发展。手势动作作为一种自然、快捷的交互方式,在智能驾驶、虚拟现实等领域有着广泛的应用。手势识别的任务是,当操作者做出某个手势动作后,计算机能够快速准确的判断出该手势的类型。本文将使用ModelArts开发训练一个视频动态手势识别的算法模型,对上滑、下滑、左滑、右滑、打开、关闭等动态手势类别进行检测,实现类似华为手机隔空手势的功能。算法简介CNN-VIT 视频动态手势识别算法首先使用预训练网络InceptionResNetV2逐帧提取视频动作片段特征,然后输入Transformer Encoder进行分类。我们使用动态手势识别样例数据集对算法进行测试,总共包含108段视频,数据集包含无效手势、上滑、下滑、左滑、右滑、打开、关闭等7种手势的视频,具体操作流程如下:首先我们将采集的视频文件解码抽取关键帧,每隔4帧保存一次,然后对图像进行中心裁剪和预处理,代码如下:def load_video(file_name): cap = cv2.VideoCapture(file_name) # 每隔多少帧抽取一次 frame_interval = 4 frames = [] count = 0 while True: ret, frame = cap.read() if not ret: break # 每隔frame_interval帧保存一次 if count % frame_interval == 0: # 中心裁剪 frame = crop_center_square(frame) # 缩放 frame = cv2.resize(frame, (IMG_SIZE, IMG_SIZE)) # BGR -> RGB [0,1,2] -> [2,1,0] frame = frame[:, :, [2, 1, 0]] frames.append(frame) count += 1 return np.array(frames) 然后我们创建图像特征提取器,使用预训练模型InceptionResNetV2提取图像特征,代码如下:def get_feature_extractor(): feature_extractor = keras.applications.inception_resnet_v2.InceptionResNetV2( weights = 'imagenet', include_top = False, pooling = 'avg', input_shape = (IMG_SIZE, IMG_SIZE, 3) ) preprocess_input = keras.applications.inception_resnet_v2.preprocess_input inputs = keras.Input((IMG_SIZE, IMG_SIZE, 3)) preprocessed = preprocess_input(inputs) outputs = feature_extractor(preprocessed) model = keras.Model(inputs, outputs, name = 'feature_extractor') return model接着提取视频特征向量,如果视频不足40帧就创建全0数组进行补白:def load_data(videos, labels): video_features = [] for video in tqdm(videos): frames = load_video(video) counts = len(frames) # 如果帧数小于MAX_SEQUENCE_LENGTH if counts < MAX_SEQUENCE_LENGTH: # 补白 diff = MAX_SEQUENCE_LENGTH - counts # 创建全0的numpy数组 padding = np.zeros((diff, IMG_SIZE, IMG_SIZE, 3)) # 数组拼接 frames = np.concatenate((frames, padding)) # 获取前MAX_SEQUENCE_LENGTH帧画面 frames = frames[:MAX_SEQUENCE_LENGTH, :] # 批量提取特征 video_feature = feature_extractor.predict(frames) video_features.append(video_feature) return np.array(video_features), np.array(labels)最后创建VIT Model,代码如下:# 位置编码 class PositionalEmbedding(layers.Layer): def __init__(self, seq_length, output_dim): super().__init__() # 构造从0~MAX_SEQUENCE_LENGTH的列表 self.positions = tf.range(0, limit=MAX_SEQUENCE_LENGTH) self.positional_embedding = layers.Embedding(input_dim=seq_length, output_dim=output_dim) def call(self,x): # 位置编码 positions_embedding = self.positional_embedding(self.positions) # 输入相加 return x + positions_embedding # 编码器 class TransformerEncoder(layers.Layer): def __init__(self, num_heads, embed_dim): super().__init__() self.p_embedding = PositionalEmbedding(MAX_SEQUENCE_LENGTH, NUM_FEATURES) self.attention = layers.MultiHeadAttention(num_heads=num_heads, key_dim=embed_dim, dropout=0.1) self.layernorm = layers.LayerNormalization() def call(self,x): # positional embedding positional_embedding = self.p_embedding(x) # self attention attention_out = self.attention( query = positional_embedding, value = positional_embedding, key = positional_embedding, attention_mask = None ) # layer norm with residual connection output = self.layernorm(positional_embedding + attention_out) return output def video_cls_model(class_vocab): # 类别数量 classes_num = len(class_vocab) # 定义模型 model = keras.Sequential([ layers.InputLayer(input_shape=(MAX_SEQUENCE_LENGTH, NUM_FEATURES)), TransformerEncoder(2, NUM_FEATURES), layers.GlobalMaxPooling1D(), layers.Dropout(0.1), layers.Dense(classes_num, activation="softmax") ]) # 编译模型 model.compile(optimizer = keras.optimizers.Adam(1e-5), loss = keras.losses.SparseCategoricalCrossentropy(from_logits=False), metrics = ['accuracy'] ) return model模型训练完整体验可以点击Run in ModelArts一键运行我发布的Notebook:最终模型在整个数据集上的准确率达到87%,即在小数据集上训练取得了较为不错的结果。视频推理首先加载VIT Model,获取视频类别索引标签:import random # 加载模型 model = tf.keras.models.load_model('saved_model') # 类别标签 label_to_name = {0:'无效手势', 1:'上滑', 2:'下滑', 3:'左滑', 4:'右滑', 5:'打开', 6:'关闭', 7:'放大', 8:'缩小'}然后使用图像特征提取器InceptionResNetV2提取视频特征:# 获取视频特征 def getVideoFeat(frames): frames_count = len(frames) # 如果帧数小于MAX_SEQUENCE_LENGTH if frames_count < MAX_SEQUENCE_LENGTH: # 补白 diff = MAX_SEQUENCE_LENGTH - frames_count # 创建全0的numpy数组 padding = np.zeros((diff, IMG_SIZE, IMG_SIZE, 3)) # 数组拼接 frames = np.concatenate((frames, padding)) # 取前MAX_SEQ_LENGTH帧 frames = frames[:MAX_SEQUENCE_LENGTH,:] # 计算视频特征 N, 1536 video_feat = feature_extractor.predict(frames) return video_feat最后将视频序列的特征向量输入Transformer Encoder进行预测:# 视频预测 def testVideo(): test_file = random.sample(videos, 1)[0] label = test_file.split('_')[-2] print('文件名:{}'.format(test_file) ) print('真实类别:{}'.format(label_to_name.get(int(label))) ) # 读取视频每一帧 frames = load_video(test_file) # 挑选前帧MAX_SEQUENCE_LENGTH显示 frames = frames[:MAX_SEQUENCE_LENGTH].astype(np.uint8) # 保存为GIF imageio.mimsave('animation.gif', frames, duration=10) # 获取特征 feat = getVideoFeat(frames) # 模型推理 prob = model.predict(tf.expand_dims(feat, axis=0))[0] print('预测类别:') for i in np.argsort(prob)[::-1][:5]: print('{}: {}%'.format(label_to_name[i], round(prob[i]*100, 2))) return display(Image(open('animation.gif', 'rb').read()))模型预测结果:文件名:hand_gesture/woman_014_0_7.mp4 真实类别:无效手势 预测类别: 无效手势: 99.82% 下滑: 0.12% 关闭: 0.04% 左滑: 0.01% 打开: 0.01%
-
4月20日, HCDG城市行·天津站——“极快至简 灵活部署”我想象中的AI高效开发ModelArts技术工作坊圆满举办。活动特邀来自华为云DTSE、华为云云享专家、以及天津软件技术协会的伙伴企业专家们为与会开发者带来一场别开生面的技术交流及动手实践活动。活动伊始,天津市软件行业协会技术专委会主任赵文毅欢迎各位专家和嘉宾莅临本次技术分享活动。他表示,随着各企业的数字化转型和人工智能的迅猛发展,AIGC正逐渐成为企业数字化转型的重要工具,ModelArts作为华为云面向开发者的一站式AI开发平台,对于天津各传统企业,工业制造业的数智化转型提供技术支撑,这次动手工作坊也是让大家以开发者的第一视角来深入体验开发者的日常,同时欢迎大家继续关注和参与接下来的更多活动。天津市软件行业协会技术专委会主任 赵文毅分享环节华为云开发者联盟DTSE专家 陈立龙华为云开发者联盟DTSE(Developer Technical Service Engineer)专家陈立龙,分享了ModelArts主题的相关内容,从技术和业务两个角度,深入介绍ModelArts的技术原理、特点、优势和应用案例。展示ModelArts如何帮助开发者和企业实现全栈全生命周期的模型开发工具链,通过全面的AI工具和服务,为业务智能快速创新赋能,助力企业数字化转型,即使是面向AI开发零基础的用户,也可以使用ModelArts在AI Gallery中预置的模型、算法、数据、Notebook等资产,零代码完成AI建模和应用,与大家共同探讨AI的发展趋势和挑战。ModelArts 是华为云全栈全场景AI 解决方案面向用户和开发者的门户,作为一站式 AI开发平台,提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,及端 - 边 - 云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期 AI工作流。ModelArts提供端到端模型生产线,高效开发、调试和调优大模型应用和场景化应用,助力千行百业智能升级。接下来是由华为云HCDG核心组织者姚圣伟,给大家带来的动手实验《基于ModelArts JupyterLab在线调优钢筋检测》。他先是对比了国内外云厂商在对开发者提供的AI云开发平台。并重点指出了在日常开发过程中的痛点问题,开发者对于开发环境的搭建,应用的部署和运维环节都担负着极高的压力和困扰。而通过使用华为云的ModelArts平台提供的模型开发、训练、推理端到端工具链,DataOps+MLOps+DevOps无缝协同,开发效率大幅提升。在与各位嘉宾的交流过程中,他也为大家解答了,当前AI大模型开发,和企业实际需要的AI应用之间的区别,带领大家在华为云开发者学堂的云端实验室,手把手通过动手实践的方式来体验企业真实需要的应用开发及调优流程。实验链接:https://lab.huaweicloud.com/experiment-detail_484关于接下来华为云ModelArts技术的发展,我们已经看到了人工智能计算中心在全国各地落地开花,端到端一体化的开发平台也是开发者和企业喜闻乐见的利器。在到场嘉宾和专家们热烈探讨AI在生活中,给我们带来诸多便利的话题中,将整个活动的氛围推向了高潮。我们经常去多问一句为什么,多想一步类似的场景在我们生活中还能解决什么实际的问题,相信困惑我们很久的谜题就会揭晓。接下来,HCDG天津开发者社区将致力于构建一个更加开放和协作的环境,让开发者们能够更容易地分享知识、资源和经验。社区将组织定期的技术研讨会和工作坊,以激发创新思维和促进技术交流。此外,社区还将提供专业的华为技术培训,帮助开发者掌握最新的华为云平台服务,从而在华为云生态中找到更多的机会和可能性。通过这些举措,HCDG天津开发者社区希望能够帮助华为云开发者们实现个人成长,并为华为云生态的繁荣做出贡献。
-
我先来一个,微信聊天用语音输入文字,会比较经常的用的
-
借助数据特征分析功能,可以看出数据集整体上的统计信息,对模型的调优提供了重要的诊断建议。然而,进行细粒度数据珍断和优化则会发现每个数据的问题,粒度更细。并且,可以将每个数据的重要性或者难例程度标记出来,然后给出相应的诊断和优化建议。ModelArts可自动提供基于图像语义、数据特征及数据增强的细粒度数据诊断分析,并提供对应的指导建议,以帮助开发者聚焦难例数据的数据增强,从而更有效率地提高模型的精度。典型的诊断优化建议见下表,开发者根据诊断建议可以做进一步针对性的数据增强。
-
为了开发好人工智能应用,在数据准备阶段,通常还需要对数据进行整体的统计分析及对单个数据进行细粒度分析珍断,之样才可以更深入地了解数据,及时发现更深层次的问题并进行优化。数据集特征分析和优化特征分析的主要作用在于帮助开发者快速方便地了解数据集的特点,然后制订后续的优化和处理方案。数据集的特征分析可以融入项目开发的各个流程,如数据清洗、数据增强、模型训练、模型评估等。在前面提到的数据清洗过程中,就用到了基于特征分析的方法去除少量异常数据。以目标检测任务为例,ModelArts特征分析模块支持的主要特征涵盖了分辨率、图像高宽比、图像亮度、图像饱和度、图像清晰度、图像色彩丰富度等常规图像特征及目标框个数、面积标准差、堆叠度等标注相关的特征。用户可以自行选择数据集版本。除可以查看单个数据集的特征统计外,ModelArts还支持对比功能,如数据集不同版本之间的对比、训练集与验证集之间的对比等。数据集特征分析是数据分析诊断的有效工具。如果训练集和验证集之间分布差异较大,说明训练数据集上训练的模型在验证集上效果可能较差。通过追踪每个特征上2个数据集之间的差异,开发者可以对数据集差异情况有更好的理解并做出优化改进。例如,可以利用迁移学习来优化算法,使得模型可以自适应不同的数据分布情况。在遥感影像识别领域,不同卫星、不同时间、不同季节拍摄的同一地点遥感图像会有很大区别。如果原图是中午拍摄的,目标图是傍晚拍摄的,原图的整体亮度要高于目标图。假设模型是基于类似目标图的数据集训练的,当使用原图进行评估或测试时,模型就会产生失准现象,如果在评估前对原图进行直方图规定化操作,将其RGB分布转换成类似目标图的形状和分布,模型的精度就会大幅提升。上述是对一些显而易见的特征做的分析和归纳,我们还可以对高阶的特征做分析。可以先用深度神经网络模型提取特征,然后再降维展示,在特征的分布上,有一类数据(深灰色部分)实际包括了两个子类,因此模型训练时,被强行要求两种类别的数据归为同一类。实际上可能把一类拆分为两类来训练会比较合适。
-
# 可以从root进程,广播一个变量到所有进程 # 这里如果其它进程运行到这里,则会等待来自root进程的广播 # 注意,变量本身越大,广播耗时越长,请注意耗时。尤其是玩大模型的时候,不要动不动就广播特别大的矩阵,很耗时的。 b = comm.bcast(a, root=0)
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签