训练日志刷屏使我痛苦,我开发了VLog

Pytorch实战总结篇之模型训练、评估与使用 1. 写在前面 这段时间一直在持续学习Pytorch, 也大约整理了20篇左右的笔记, 主要包括系统学习Pytorch的10篇, 这里面主要是从原理的层次看Pytorch的运行机制, 一方面是可以大致上对学习Pytorch有一个整体的框架, 另一方面是能理解很多知识的背后原理, 然后是Pytorch的入门与实战8篇, 这里面是使用Pytorch进行一些实战任务, 从图像到语音, 大致上可以知道Pytorch在各个领域是怎么发挥作用的, 但是经过前面的这些文章, 可能依然无法把Pytorch运用起来, 第一个 阅读详情

训练日志刷屏使我痛苦,我开发了VLog,可以在任意训练代码中轻松使用~

例如,通过callback嵌入到lightgbm/catboost/transformers/ultralytics,乃至keras库的训练代码流程中~

before:

f863c0c0a2c38333f1d4585dec341cdc.png

after:

b76aa5c885f754c3a94129980f6dae0d.gif

为什么不用tensorboard或者wandb?

tensorboard需要开端口权限,服务器开发环境有时候没有端口权限~

wandb需要联网,有时候网速很差或者没有网,影响体验~

综合对比考虑如下表

f99a200b86841b54b49068d426bb1dce.png

一,VLog基本原理

VLog类主要有以下5个方法。

from torchkeras import VLog

#1, 初始化方法
vlog = VLog(epochs=20, monitor_metric='val_loss', monitor_mode='min') 

#2, 显示开始空图表
vlog.log_start()

#3, 更新step级别日志
vlog.log_step({'train_loss':0.003,'val_loss':0.002}) 

#4, 更新epoch级别日志
vlog.log_epoch({'train_acc':0.9,'val_acc':0.87,'train_loss':0.002,'val_loss':0.03})

#5, 输出最终稳定状态图表
vlog.log_end()
import time
import math,random
from torchkeras import VLog

epochs = 10
batchs = 30

#0, 指定监控北极星指标,以及指标优化方向
vlog = VLog(epochs, monitor_metric='val_loss', monitor_mode='min') 

#1, log_start 初始化动态图表
vlog.log_start() 

for epoch in range(epochs):
    
    #train
    for step in range(batchs):
        
        #2, log_step 更新step级别日志信息,打日志,并用小进度条显示进度
        vlog.log_step({'train_loss':100-2.5*epoch+math.sin(2*step/batchs)}) 
        time.sleep(0.05)
        
    #eval    
    for step in range(20):
        
        #3, log_step 更新step级别日志信息,指定training=False说明在验证模式,只打日志不更新小进度条
        vlog.log_step({'val_loss':100-2*epoch+math.sin(2*step/batchs)},training=False)
        time.sleep(0.05)
        
    #4, log_epoch 更新epoch级别日志信息,每个epoch刷新一次动态图表和大进度条进度
    vlog.log_epoch({'val_loss':100 - 2*epoch+2*random.random()-1,
                    'train_loss':100-2.5*epoch+2*random.random()-1})  

# 5, log_end 调整坐标轴范围,输出最终指标可视化图表
vlog.log_end()

830d0af5b03eb6721cb623407037dcd6.png

二,在LightGBM中使用VLog

设计一个简单的回调,就可以搞定~

from torchkeras import VLog
class VLogCallback:
    def __init__(self, num_boost_round, 
                 monitor_metric='val_loss',
                 monitor_mode='min'):
        self.order = 20
        self.num_boost_round = num_boost_round
        self.vlog = VLog(epochs = num_boost_round, monitor_metric = monitor_metric, 
                         monitor_mode = monitor_mode)

    def __call__(self, env) -> None:
        metrics = {}
        for item in env.evaluation_result_list:
            if len(item) == 4:
                data_name, eval_name, result = item[:3]
                metrics[data_name+'_'+eval_name] = result
            else:
                data_name, eval_name = item[1].split()
                res_mean = item[2]
                res_stdv = item[4]
                metrics[data_name+'_'+eval_name] = res_mean
        self.vlog.log_epoch(metrics)
import datetime
import numpy as np
import pandas as pd
import lightgbm as lgb
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

def printlog(info):
    nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print("\n"+"=========="*8 + "%s"%nowtime)
    print(info+'...\n\n')

#================================================================================
# 一,读取数据
#================================================================================
printlog("step1: reading data...")

# 读取dftrain,dftest
breast = datasets.load_breast_cancer()
df = pd.DataFrame(breast.data,columns = [x.replace(' ','_') for x in breast.feature_names])
df['label'] = breast.target
df['mean_radius'] = df['mean_radius'].apply(lambda x:int(x))
df['mean_texture'] = df['mean_texture'].apply(lambda x:int(x))
dftrain,dftest = train_test_split(df)

categorical_features = ['mean_radius','mean_texture']
lgb_train = lgb.Dataset(dftrain.drop(['label'],axis = 1),label=dftrain['label'],
                        categorical_feature = categorical_features)

lgb_valid = lgb.Dataset(dftest.drop(['label'],axis = 1),label=dftest['label'],
                        categorical_feature = categorical_features,
                        reference=lgb_train)

#================================================================================
# 二,设置参数
#================================================================================
printlog("step2: setting parameters...")
                               
boost_round = 50                   
early_stop_rounds = 10

params = {
    'boosting_type': 'gbdt',
    'objective':'binary',
    'metric': ['auc'], #'l2'
    'num_leaves': 15,   
    'learning_rate': 0.05,
    'feature_fraction': 0.9,
    'bagging_fraction': 0.8,
    'bagging_freq': 5,
    'verbose': 0,
    'early_stopping_round':5
}

#================================================================================
# 三,训练模型
#================================================================================
printlog("step3: training model...")

result = {}

vlog_cb = VLogCallback(boost_round, monitor_metric = 'val_auc', monitor_mode = 'max')
vlog_cb.vlog.log_start()

gbm = lgb.train(params,
                lgb_train,
                num_boost_round= boost_round,
                valid_sets=(lgb_valid, lgb_train),
                valid_names=('val','train'),
                callbacks = [lgb.record_evaluation(result),
                             vlog_cb]
               )

vlog_cb.vlog.log_end()

#================================================================================
# 四,评估模型
#================================================================================
printlog("step4: evaluating model ...")

y_pred_train = gbm.predict(dftrain.drop('label',axis = 1), num_iteration=gbm.best_iteration)
y_pred_test = gbm.predict(dftest.drop('label',axis = 1), num_iteration=gbm.best_iteration)

print('train accuracy: {:.5} '.format(accuracy_score(dftrain['label'],y_pred_train>0.5)))
print('valid accuracy: {:.5} \n'.format(accuracy_score(dftest['label'],y_pred_test>0.5)))


#================================================================================
# 五,保存模型
#================================================================================
printlog("step5: saving model ...")


model_dir = "gbm.model"
print("model_dir: %s"%model_dir)
gbm.save_model("gbm.model")
printlog("task end...")

###
##
#
================================================================================2023-11-10 15:39:38
step1: reading data......



================================================================================2023-11-10 15:39:38
step2: setting parameters......



================================================================================2023-11-10 15:39:38
step3: training model......

6c24936c42819347399d1cfea07826d9.png

================================================================================2023-11-10 15:39:44
step4: evaluating model ......


train accuracy: 0.95775 
valid accuracy: 0.94406 


================================================================================2023-11-10 15:39:44
step5: saving model ......


model_dir: gbm.model

================================================================================2023-11-10 15:39:44
task end......

三, 在ultralytics中使用VLog

写个适配的回调~

ultralytics可以做 分类,检测,分割 等等。

这个回调函数是通用的,此处以分类问题为例,改个monitor_metric即可~

cats_vs_dogs数据集可以在公众号算法美食屋后台回复:torchkeras 获取~

from torchkeras import VLog
class VLogCallback:
    def __init__(self,epochs,monitor_metric,monitor_mode):
        self.vlog = VLog(epochs,monitor_metric,monitor_mode)
        
    def on_train_batch_end(self,trainer):
        self.vlog.log_step(trainer.label_loss_items(trainer.tloss, prefix='train'))

    def on_fit_epoch_end(self,trainer):
        metrics = {k.split('/')[-1]:v for k,v in trainer.metrics.items() if 'loss' not in k}
        self.vlog.log_epoch(metrics)

    def on_train_epoch_end(self,trainer):
        pass
from ultralytics import YOLO 
epochs = 10

vlog_cb = VLogCallback(epochs = epochs,
                       monitor_metric='accuracy_top1',
                       monitor_mode='max')
callbacks = {
    "on_train_batch_end": vlog_cb.on_train_batch_end,
    "on_fit_epoch_end": vlog_cb.on_fit_epoch_end
}

model = YOLO(model = 'yolov8n-cls.pt')
for event,func in callbacks.items():
    model.add_callback(event,func)
    
vlog_cb.vlog.log_start()
results = model.train(data='cats_vs_dogs', 
                      epochs=epochs, workers=4)     # train the model
vlog_cb.vlog.log_end()

8aa62f4f707a58de1003cf4e4eb9daef.png

四, 在transformers中使用VLog

waimai评论数据集可以在公众号算法美食屋后台回复:torchkeras 获取~

#回调给你写好了~
from torchkeras.tools.transformers import VLogCallback
import numpy as np 
import pandas as pd 
import torch 
import datasets 
from transformers import AutoTokenizer,DataCollatorWithPadding
from transformers import AutoModelForSequenceClassification 
from transformers import TrainingArguments,Trainer 
from transformers import EarlyStoppingCallback

from tqdm import tqdm 
from transformers import AdamW, get_scheduler


#一,准备数据

df = pd.read_csv("waimai_10k.csv")
ds = datasets.Dataset.from_pandas(df)
ds = ds.shuffle(42) 
ds = ds.rename_columns({"review":"text","label":"labels"})

tokenizer = AutoTokenizer.from_pretrained('bert-base-chinese') 

ds_encoded = ds.map(lambda example:tokenizer(example["text"]),
                    remove_columns = ["text"],
                    batched=True)

#train,val,test split
ds_train_val,ds_test = ds_encoded.train_test_split(test_size=0.2).values()
ds_train,ds_val = ds_train_val.train_test_split(test_size=0.2).values() 

data_collator = DataCollatorWithPadding(tokenizer=tokenizer)

dl_train = torch.utils.data.DataLoader(ds_train, batch_size=16, collate_fn = data_collator)
dl_val = torch.utils.data.DataLoader(ds_val, batch_size=16,  collate_fn = data_collator)
dl_test = torch.utils.data.DataLoader(ds_test, batch_size=16,  collate_fn = data_collator)

for batch in dl_train:
    break
print({k: v.shape for k, v in batch.items()})



#二,定义模型
model = AutoModelForSequenceClassification.from_pretrained(
    'bert-base-chinese',num_labels=2)

#三,训练模型
def compute_metrics(eval_preds):
    logits, labels = eval_preds
    preds = np.argmax(logits, axis=-1)
    accuracy = np.sum(preds==labels)/len(labels)
    precision = np.sum((preds==1)&(labels==1))/np.sum(preds==1)
    recall = np.sum((preds==1)&(labels==1))/np.sum(labels==1)
    f1  = 2*recall*precision/(recall+precision)
    return {"accuracy":accuracy,"precision":precision,"recall":recall,'f1':f1}

training_args = TrainingArguments(
    output_dir = "bert_waimai",
    num_train_epochs = 3,
    logging_steps = 20,
    gradient_accumulation_steps = 10,
    evaluation_strategy="steps", #epoch
    
    metric_for_best_model='eval_f1',
    greater_is_better=True,
    
    report_to='none',
    load_best_model_at_end=True
)

callbacks = [EarlyStoppingCallback(early_stopping_patience=10),
             VLogCallback()] #监控指标同 metric_for_best_model

trainer = Trainer(
    model,
    training_args,
    train_dataset=ds_train,
    eval_dataset=ds_val,
    compute_metrics=compute_metrics,
    callbacks = callbacks,
    data_collator=data_collator,
    tokenizer=tokenizer,
)
trainer.train() 



#四,评估模型
trainer.evaluate(ds_val)


#五,使用模型
from transformers import pipeline
model.config.id2label = {0:"差评",1:"好评"}
classifier = pipeline(task="text-classification",tokenizer = tokenizer,model=model.cpu())
classifier("挺好吃的哦")

#六,保存模型
model.save_pretrained("waimai_10k_bert")
tokenizer.save_pretrained("waimai_10k_bert")

classifier = pipeline("text-classification",model="waimai_10k_bert")
classifier(["味道还不错,下次再来","我去,吃了我吐了三天"])

b9371ef095ed42846e9cddf7bc6e9df1.png

公众号算法美食屋后台回复关键词:torchkeras,获取本文notebook代码和数据集下载链接~

5b939b3ca198ae4f5a83d2b6f9dcc79b.png

万水千山总是情,点个赞赞行不行~😋

微波传感器 - 从原理到实战,解锁非接触感知新维度 本文深入解析微波传感器的工作原理,重点阐述了其基于多普勒效应的非接触感知机制,并对比了红外、超声波等技术的优劣。通过树莓派Pico与RCWL-0516模块的实战案例,展示了如何构建区域入侵检测器,并探讨了微波传感器在智能家居、工业自动化及汽车电子等领域的广阔应用前景。 阅读详情

相关推荐

VASPKIT绘制平面平均电荷差分密度

平面平均密度差(planar-averaged electron density difference)是密度差的衍生。密度差是个三维空间函数,经常通过绘制平面图、等值面图方式图形化考察。虽然这两种图很直观,但平面图会受到截面选取的影响,而等值面图会受到等值面数值(isovalue)选取的影响,因此都有一定任意性,也不容易定量讨论。对于电子转移有比较明确方向的情况,可以绘制平面平均密度差曲线,由此可以清楚地考察垂直于选取的方向上每个截面上的密度差积分值,在定量讨论、对比上比较便利。

weixin_43948934的博客 1万+

CatBoost的Java端推理

CatBoost模型的Java推理相比LightGBM会简单许多,无需转换成pmml格式,直接用官方的Java-package即可。最主要的是,它直接支持字符串类型的类别特征,无需做各种编码转换,简直不要太6。参考文档:https://catboost.ai/en/docs/concepts/java-package一,Java项目添加Maven依赖 注意version与...

Python_Ai_Road的博客 943

Nvidia Isaac Sim图形界面 入门教程 2024(3)

在使用Isaac Sim时,最先接触到的应该是它的图形界面,此处将简单介绍图形界面中常用的一些组件:Isaac Sim的界面的常用内容可以分为几个板块。

m0_56661101的博客 4547

第十届泰迪杯数据挖掘B题:电力系统负荷预测分析--解题思路与部分代码02

文章目录笔者背景赛题描述第一问: 给出该地区电网未来10天间隔15分钟的负荷预测结果,并分析其预测精度1.时序数据结构化预处理2.lightGBM模型拟合3.lightGBM模型拟合优度判断明天见! 笔者背景 第九届泰迪杯上市公司财务造假全国一等奖,曾入围特等选拔7进3,并进行答辩。由于实习的原因不参加本次比赛,在此记录一下自己的一些想法与思考,希望可以为大家提供一些思路。此外,就多次参加比赛的经历中,笔者认为在模型构建以及论文撰写中,大家可以把某一个点作为论文的亮点,围绕这个点来展开,并对比这一个处理方

qq_43800919的博客 9460

【AIOPS实战】Dify+Zabbix:构建智能告警分析助手的核心架构与实现

本文详细介绍了如何利用Dify平台与Zabbix-MCP接口构建智能告警分析助手,实现自然语言查询告警、智能分析和报告生成。该系统通过AIOPS技术显著提升运维效率,支持中英文混合查询、自动根因分析,并内置多种优化方案确保稳定可靠。

weixin_29238147的博客 319

CMOS图像传感器系列--(四)HDR之LOFIC技术

CMOS图像传感器HDR技术之LOFIC解析 LOFIC(横向溢出积分电容器)技术是当前高动态范围成像的重要方案,通过在像素光电二极管旁设置高密度电容器收集溢出电荷,有效保留高光细节。该技术采用特殊像素结构,通过skim level触发电荷转移,实现单帧HDR成像。然而LOFIC存在显著局限性:高光区域噪声明显且难以消除,动态范围拓展不均衡(主要优化亮部),需复杂MIM工艺导致成本升高。为应对挑战,行业提出混合方案(如结合DCG技术)和工艺改进方向。OmniVision最新车载传感器OX08D10就采用了L

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 5809

查看实时刷新刷新日志

查看实时刷新刷新日志 tail -f {日志文件} 如:tail -f /usr/local/apache/logs/error_log

涛涛zy 1883

用树莓派Pico低成本更新USB-C PD控制器固件实战指南

固件更新是嵌入式系统开发与维护中的核心环节,它直接决定了硬件设备的功能、性能与兼容性。其原理通常是通过特定的通信接口(如SWD、JTAG、UART或USB)与设备内部的Bootloader建立连接,将新的程序代码安全写入非易失性存储器。在USB Power Delivery(PD)和Type-C生态中,固件更新技术尤为重要,它能修复协议握手Bug、适配新设备并提升供电策略的灵活性。本文聚焦于一个典型的工程实践场景:如何利用广泛普及且成本极低的树莓派Pico开发板,作为USB-C协议到I²C协议的转换桥,实现

weixin_27869497的博客 462

ultralytics框架yolov8模型训练过程(日志)讲解

文件夹下查找自己的相关信息即可,该文件夹包含你的任务,如果是训练的检测模型就在。每次训练会生成一个新的训练任务文件夹,里面包含每次模型训练的所有信息。训练完成后,在当前路径下的。文件夹,如果是分割模型就在。

图灵追幕者博客录 3185

【R语言】富集分析可视化代码(整理版)

分别介绍了如何使用DAVID在线分析工具对基因进行GO/KEGG功能富集分析、使用R ggplot包对获得的基因GO/KEGG功能富集结果进行可视化、使用R clusterProfiler包和R AnnotationHub包对基因进行GO/KEGG功能富集分析、OrgDb包制作以及结果可视化等。故,我重新整理了一波,并补充了可对多个分组的富集结果进行可视化以及富集结果绘制圈图等的代码。关注“在打豆豆的小潘学长”公众号,发送“富集分析3”获得完整代码包和演示数据。一、单组富集结果可视化。

weixin_54004950的博客 1万+

deap数据集的情绪检测代码环境搭建与实现

deap数据数据集很大

f的博客 4157

Ultralytics YOLO训练日志与W&B可视化分析

在目标检测模型的训练过程中,准确理解和分析训练日志对于模型优化至关重要。本文将深入探讨Ultralytics YOLO框架与Weights & Biases(W&B)集成时的训练日志可视化机制,特别是如何自定义评估指标在可视化面板中的展示顺序。 ## 训练日志与可视化概述 Ultralytics YOLO框架在训练过程中会生成详细的训练日志,这些日志包含损失值、学习率、评估指标等关键信息。当与...

gitblog_00838的博客 495

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8164

22款实测AI模型生存指南:零门槛、真免费、高稳定

大模型API调用不是简单换Key就能跑通,核心在于可用性——即在真实办公网络、非技术用户、无开发支持前提下的稳定交付能力。本文基于多模态理解、语音转写、图文生成等基础AI能力,聚焦‘实测验证’与‘工程可用’两大维度,解析22款通过压力测试、容错测试和部署友好度筛选的模型。重点覆盖Gemini-3.1-Pro代理通道优化原理、Qwen-VL中文场景适配优势、Whisper方言识别调优等关键技术价值,并延伸至短视频生成、电商图文、会议纪要等高频落地场景。所有推荐均满足零支付绑定、无隐藏额度、国内直连低失败率等硬

weixin_30940783的博客 507

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UltralyticsYOLOv8_ultralytics使用(1)

metrics.box.maps # a list contains map50-95 of each category 包含每个类别的50%-95% IoU阈值下的平均精度列表。results = model([‘bus.jpg’, ‘zidane.jpg’]) # 对 ‘bus.jpg’ 运行推断,返回结果列表。model = YOLO(‘yolov8n-seg.pt’) # 加载预训练的 YOLOv8n-seg 分割模型。# 打印包含检测到的类别概率的 Probs 对象。

youpccc的博客 1384

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ultralytics中常用的函数和类

1.Model作用:定义YOLO模型架构。典型用法:这些类和函数涵盖了从数据加载、模型定义、训练、推理到结果处理的整个流程。通过组合使用这些工具,可以构建和训练YOLO模型,并应用于实际的目标检测任务。

图灵追幕者博客录 1293

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

深度学习训练神经网络时一些名词的意思

假设训练数据集合TTT包含NNN个样本,将数据集划分为BBB个mini-batch,每个batch的大小(即batch size)为N/BN/BN/B,利用随机梯度下降训练网络参数时,跑完一个mini-batch称为一步(step),跑完所有mini-batch称为一个epoch。 ...

这个人很蓝 1132

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-model.py

【代码】YOLOv8-ultralytics-8.2.103部分代码阅读笔记-model.py。

红色的山茶花's博客 1357

tensorflow核心概念

核心概念 tensorflow核心概念 概念 说明 编程范式 数据流图 编程范式:声明式vs命令式 有向无环图 数据流图节点,叫操作(OP) 数学函数或表达式 MatMul BiasAdd Softmax 变量 Variable 占位符 placeholder 梯度值 Gradients 更新参数操作 流图执行方式 拓扑排序后执行 数据载体 张量Tensor ..

wyg_031113的专栏 1981

通过FastSpeech2中文合成项目梳理TTS流程2: 数据训练(train.py)

1. 参考github网址: GitHub - roedoejet/FastSpeech2: An implementation of Microsoft's "FastSpeech 2: Fast and High-Quality End-to-End Text to Speech" 2. 数据训练所用python 命令: python3 train.py -p config/AISHELL3/preprocess.yaml -m config/AISHELL3/model.yaml -t conf

weixin_42745601的博客 3027

北京云栖大会workshop:《数据处理:数据建模与加工》篇

原文链接:点击打开链接 摘要: 本手册为云栖大会Workshop《云数据·大计算:快速搭建互联网在线运营分析平台》的《数据处理:数据建模与加工》篇而准备。主要阐述在使用DataWorks/MaxCompute过程中如何直读TableStore中的日志数据并进行加工、用户画像,学员可以根据本实验手册,去学习如何创建外部表、编写SQL。 实验背景介绍 了解更多2017云栖

qq_40954115的博客 593

tensorflow中global_step 更新方法和使用记录

global_step在滑动平均、优化器、指数衰减学习率等方面都有用到,这个变量的实际意义非常好理解:代表目前已训练次数,比如在多少步该进行什么操作,现在神经网络训练到多少轮等等,类似于一个钟表。 在代码中常将global_step初始化为不可训练的变量0.即, global_step=tf.Variable(0, trainable=False) 对于初学者很容易迷惑global_st...

xiaolifeidaoer的博客 4633

Domino群集 for B/S system测试log,step by step

1、  建主服务器cluster,附加服务器clustericm、clusternew2、  其中clustericm用来设置icm,clusternew用来和cluster做失效转移3、  在cluster上建两个服务器的ID,安装附加服务器,安装时有other domino项写cluster4、  在cluster的服务器文档中,安全性,新建复本和创建数据与模板的权限放开5、 

sunxiaozi的IT从业历程 1357

ERNIE快速上手,从一个文本相似度计算任务开始

点击左上方蓝字关注我们项目背景与相关介绍PaddleNLP是飞桨生态文本领域核心库,具备易用的文本领域API、中文预训练模型集、多场景的应用示例、高性能分布式训练和预测部署能力,旨在提升开...

PaddlePaddle 2097

速成pytorch学习——10天.训练模型的3种方法

Pytorch通常需要用户编写自定义训练循环,训练循环的代码风格因人而异。 有3类典型的训练循环代码风格:脚本形式训练循环,函数形式训练循环,类形式训练循环。 下面以minist数据集的分类模型的训练为例,演示这3种训练模型的风格。 import torch from torch import nn from torchkeras import summary,Model import torchvision from torchvision import transforms tran

kaggle expert,全球排名前1000,清华计算机研究生,兴趣算法工程 1111

Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法

在调试代码的时候我们需要查看调试信息,那我们就需要用Android Log类。 android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, W

zuolongsnail的专栏 11万+
上一篇: BaiChuan2保姆级微调范例
下一篇: 使用Prophet预言家进行时间序列预测
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值