【cntk速成】cntk图像分类从模型自定义到测试

深度学习和深度学习框架CNTK入门(一) 深度学习和深度学习框架CNTK入门(一) 深度学习介绍 是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。 学习能用来干什么?为什么近年来引起如此广泛的关注?           深度学习,作为机器学习中延伸出来的一个领域,被应用在图像处理与计算机视觉,自然语言处理以及语音识 阅读详情

文章首发于微信公众号《有三AI》

【cntk速成】cntk图像分类从模型自定义到测试

欢迎来到专栏《2小时玩转开源框架系列》,这是我们第七篇,前面已经说过了caffe,tensorflow,pytorch,mxnet,keras,paddlepaddle。

今天说cntk,本文所用到的数据,代码请参考我们官方git

https://github.com/longpeng2008/LongPeng_ML_Course

作者 | 言有三

编辑 | 言有三

 

01 CNTK是什么

地址:https://github.com/Microsoft/CNTK

CNTK是微软开源的深度学习工具包,它通过有向图将神经网络描述为一系列计算步骤。在有向图中,叶节点表示输入值或网络参数,而其他节点表示其输入上的矩阵运算。 

CNTK允许用户非常轻松地实现和组合流行的模型,包括前馈DNN,卷积网络(CNN)和循环网络(RNN /LSTM)。与目前大部分框架一样,实现了自动求导,利用随机梯度下降方法进行优化。

cntk有什么特点呢?

1.1 性能较高

按照其官方的说法,比其他的开源框架性能都更高。

笔者在实际进行实验的时候,确实也发现它的训练比较快。

1.2 适合做语音

CNTK本就是微软语音团队开源的,自然是更合适做语音任务,使用RNN等模型,以及在时空尺度分别进行卷积非常容易。

当然,现在的背靠python的这些框架已经大同小异,未来实现大一统并非不可能。

 

02 CNTK模型训练

pip安装一条命令即可,可以选择安装cpu或者gpu版本。

pip install cntk/cntk-gpu。

接下来就是数据的准备,模型的定义,结果的保存与分析。

在此之前,我们先看官方的分类案例,直观感受一下,代码比较长。

from __future__ import print_function

import numpy as np

import cntk as C

from cntk.learners import sgd

from cntk.logging import ProgressPrinter

from cntk.layers import Dense, Sequential

def generate_random_data(sample_size, feature_dim, num_classes):

    # Create synthetic data using NumPy.
    Y = np.random.randint(size=(sample_size, 1), low=0, high=num_classes)

    # Make sure that the data is separable
    X = (np.random.randn(sample_size, feature_dim) + 3) * (Y + 1)
    X = X.astype(np.float32)
    # converting class 0 into the vector "1 0 0",
    # class 1 into vector "0 1 0", ...
    class_ind = [Y == class_number for class_number in range(num_classes)]
    Y = np.asarray(np.hstack(class_ind), dtype=np.float32)
    return X, Ydef ffnet():
   inputs = 2
   outputs = 2
   layers = 2
   hidden_dimension = 50

   # input variables denoting the features and label data
   features = C.input_variable((inputs), np.float32)
   label = C.input_variable((outputs), np.float32)

   # Instantiate the feedforward classification model
   my_model = Sequential ([
                   Dense(hidden_dimension, activation=C.sigmoid),
                   Dense(outputs)])
   z = my_model(features)

   ce = C.cross_entropy_with_softmax(z, label)
   pe = C.classification_error(z, label)

   # Instantiate the trainer object to drive the model training
   lr_per_minibatch = C.learning_parameter_schedule(0.125)
   progress_printer = ProgressPrinter(0)
   trainer = C.Trainer(z, (ce, pe), [sgd(z.parameters, lr=lr_per_minibatch)], [progress_printer])

   # Get minibatches of training data and perform model training
   minibatch_size = 25
   num_minibatches_to_train = 1024

   aggregate_loss = 0.0
   for i in range(num_minibatches_to_train):
       train_features, labels = generate_random_data(minibatch_size, inputs, outputs)
       # Specify the mapping of input variables in the model to actual minibatch data to be trained with
       trainer.train_minibatch({features : train_features, label : labels})
       sample_count = trainer.previous_minibatch_sample_count
       aggregate_loss += trainer.previous_minibatch_loss_average * sample_count

   last_avg_error = aggregate_loss / trainer.total_number_of_samples_seen

   test_features, test_labels = generate_random_data(minibatch_size, inputs, outputs)
   avg_error = trainer.test_minibatch({features : test_features, label : test_labels})
   print(' error rate on an unseen minibatch: {}'.format(avg_error))
   return last_avg_error, avg_errornp.random.seed(98052)ffnet()

上面就是一个两层的全连接神经网络,使用input_variable封装数据,使用Sequential定义模型,使用train_minibatch({features : train_features, label : labels})来feed数据,与tf,pytorch等框架都是一样的,的确是没有什么好说的。

2.1 数据读取

这里需要用到接口,io.ImageDeserializer与C.io.StreamDefs,C.io.StreamDef。

它可以直接输入如下格式的txt文件用于图像分类问题。

../../../../datas/mouth/1/182smile.jpg1    

../../../../datas/mouth/1/435smile.jpg1    

../../../../datas/mouth/0/40neutral.jpg0    

../../../../datas/mouth/1/206smile.jpg1    

注意上面采用的分隔符是'\t',这一点与MXNet相同,与caffe不同,完整的解析代码如下:

C.io.MinibatchSource(C.io.ImageDeserializer(map_file, C.io.StreamDefs(    

features = C.io.StreamDef(field='image', transforms=transforms),    

labels   = C.io.StreamDef(field='label', shape=num_classes)    

)))    

在对图像数据进行封装的时候,添加了transform,所以可以在这里进行数据预处理操作。

常用的裁剪与缩放如下:

transform.crop(crop_type='randomside', side_ratio=0.8)

transform.scale(width=image_width, height=image_height, channels=num_channels,interpolations='linear')

C.io.MinibatchSource的返回就是数据指针,可以直接用于训练。

2.2 网络定义

与tensorflow和pytorch颇为相似,如下

def simpleconv3(input, out_dims):
   with C.layers.default_options(init=C.glorot_uniform(), activation=C.relu):
       net = C.layers.Convolution((3,3), 12, pad=True)(input)
       net = C.layers.MaxPooling((3,3), strides=(2,2))(net)

       net = C.layers.Convolution((3,3), 24, pad=True)(net)
       net = C.layers.MaxPooling((3,3), strides=(2,2))(net)

       net = C.layers.Convolution((3,3), 48, pad=True)(net)
       net = C.layers.MaxPooling((3,3), strides=(2,2))(net)

       net = C.layers.Dense(128)(net)
       net = C.layers.Dense(out_dims, activation=None)(net)

   return net

2.3 损失函数与分类错误率指标定义

如下,model_func就是上面的net,input_var_norm和label_var分别就是数据和标签。

z = model_func(input_var_norm, out_dims=2)    

ce = C.cross_entropy_with_softmax(z, label_var)    

pe = C.classification_error(z, label_var)   

2.4 训练参数

就是学习率,优化方法,epoch等配置。

epoch_size     = 900    

minibatch_size = 64      

lr_per_minibatch       = C.learning_rate_schedule([0.01]*100 + [0.003]*100 + [0.001],    

C.UnitType.minibatch, epoch_size)    

m = C.momentum_schedule(0.9)    

l2_reg_weight          = 0.001    

learner = C.momentum_sgd(z.parameters,    

lr = lr_per_minibatch,    

momentum = m,    

l2_regularization_weight=l2_reg_weight)    

progress_printer = C.logging.ProgressPrinter(tag='Training', num_epochs=max_epochs)    

trainer = C.Trainer(z, (ce, pe), [learner], [progress_printer])    

注意学习率的配置比较灵活,通过learning_rate_schedule接口,上面的C.learning_rate_schedule([0.01]*100 +[0.003]*100 + [0.001]意思是,在0~100 epoch,使用0.01的学习率,100~100+100 epoch,使用0.003学习率,此后使用0.001学习率。

2.5 训练与保存

使用数据指针的next_minibatch获取训练数据,trainer的train_minibatch进行训练,可以看出cntk非常强调minibatch的概念,实际上学习率和优化方法都可以针对单个样本进行设置。

for epoch in range(max_epochs):    

   sample_count = 0      

   while sample_count < epoch_size:    

      data = reader_train.next_minibatch(min(minibatch_size, epoch_size -sample_count), input_map=input_map)    

      trainer.train_minibatch(data)    

模型的保存就一行代码:

z.save("simpleconv3.dnn")

2.6 可视化

需要可视化的内容不多,就是loss曲线和精度曲线,所以可以直接自己添加代码,用上面的模型训练最后的loss如下,更好参数可自己调。

 

03 CNTK模型测试

测试就是载入模型,做好与训练时同样的预处理操作然后forward就行了。

import ***
model_file = sys.argv[1]
image_list = sys.argv[2]
model = C.load_model(model_file)

count = 0
acc = 0
imagepaths = open(image_list,'r').readlines()
for imagepath in imagepaths:
   imagepath,label = imagepath.strip().split('\t')
   im = Image.open(imagepath)
   print imagepath
   print "im size",im.size
   image_data = np.array(im,dtype=np.float32)
   image_data = cv2.resize(image_data,(image_width,image_height))
   image_data = np.ascontiguousarray(np.transpose(image_data, (2, 0, 1)))
   output = model.eval({model.arguments[0]:[image_data]})[0]
   print output
   print label,np.argmax(np.squeeze(output))
   if str(label) == str(np.argmax(np.squeeze(output))):
       acc = acc + 1
   count = count + 1
print "acc=",float(acc) / float(count)

最终模型训练集准确率91%,测试集准确率88%,大家可以自己去做更多调试。

 

总结

相比于tensorflow,pytorch,cntk固然是比较小众,但也不失为一个优秀的平台,尤其是对于语音任务,感兴趣大家可以自行体验,代码已经上传至https://github.com/longpeng2008/LongPeng_ML_Course。

 

转载文章请后台联系

侵权必究

本系列完整文章:

第一篇:【caffe速成】caffe图像分类从模型自定义到测试

第二篇:【tensorflow速成】Tensorflow图像分类从模型自定义到测试

第三篇:【pytorch速成】Pytorch图像分类从模型自定义到测试

第四篇:【paddlepaddle速成】paddlepaddle图像分类从模型自定义到测试

第五篇:【Keras速成】Keras图像分类从模型自定义到测试

第六篇:【mxnet速成】mxnet图像分类从模型自定义到测试

第七篇:【cntk速成】cntk图像分类从模型自定义到测试

第八篇:【chainer速成】chainer图像分类从模型自定义到测试

第九篇:【DL4J速成】Deeplearning4j图像分类从模型自定义到测试

第十篇:【MatConvnet速成】MatConvnet图像分类从模型自定义到测试

第十一篇:【Lasagne速成】Lasagne/Theano图像分类从模型自定义到测试

第十二篇:【darknet速成】Darknet图像分类从模型自定义到测试

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI!

 

Python与深度学习库CNTK 此外,CNTK还支持LSTM网络、卷积网络等各种深度学习模型,可以应用于各种任务,例如图像识别、语音识别和自然语言处理等。在上面的代码中,我们使用Dense函数创建一个全连接层,使用squared_error函数创建一个损失函数,使用sgd函数创建一个优化器,使用Trainer函数创建一个Trainer对象,并使用train_minibatch函数迭代地训练模型。它可以应用在各种环境中,例如,Web开发、数据科学、人工智能、机器学习等领域。CNTK提供了丰富的网络层和损失函数,可以方便地构建深度学习模型。 阅读详情

相关推荐

EndNote20保姆级安装教程:从下载到汉化一步到位(附闪退解决方案)

本文提供EndNote20的详细安装与汉化教程,涵盖系统准备、分步安装、路径优化及闪退解决方案。针对科研人员的需求,特别优化了中文环境下的使用体验,确保文献管理工具的高效稳定运行。

weixin_30415113的博客 342

深度学习框架【CNTK】的安装

鉴于之前介绍的深度学习框架都是基于python写的,本次学习CNTK的时候决定使用C#来尝试,而且CNTK因各种原因,暂时无法在高于3.6版本进行安装,因此决定尝试使用C#来做CNTK的开发。

ctu_sue的博客 2683

基于 Python 的 LIF 模型:探索神经元同步与小世界网络

首先,我们定义了一个LIFNeuronself.soma.L = self.soma.diam = 12.6157 # 固定神经元形状self.cm = cm # 电容self.V_rest = V_rest # 静息电位self.V = V_rest # 初始化膜电位在初始化过程中,每个神经元被赋予初始的静息电位,并且其膜电位会在后续的模拟过程中动态变化。

qq_36224726的博客 1428

Microsoft Cognitive Toolkit (CNTK): 开源深度学习框架

Microsoft Cognitive Toolkit (CNTK) 是由微软研究院开发的开源深度学习框架。它通过有向图来描述神经网络,将神经网络表示为一系列计算步骤。CNTK 允许用户轻松实现和组合各种流行的模型类型,如前馈 DNN、卷积网络 (CNN) 和循环网络 (RNN/LSTM)。它实现了随机梯度下降 (SGD) 学习算法,支持自动微分和多 GPU/多服务器并行化。CNTK 自 2015 年 4 月起以开源许可证发布。微软希望社区能够利用 CNTK 通过交换开源工作代码来更快地分享想法。

2401_87458778的博客 1705

西门子S7-1200与S7-200SMART的PROFINET通讯实战:从GSD文件生成到数据监控

本文详细解析了西门子S7-1200与S7-200SMART之间实现PROFINET通讯的完整实战流程。核心内容包括将S7-200SMART配置为智能IO设备、生成并安装GSD文件、在TIA Portal中进行网络组态与地址映射,最终实现双向数据交换与监控。该方案为整合新旧设备、构建灵活高效的工业自动化系统提供了可靠路径。

weixin_29271263的博客 248

从命名玄学看单片机江湖:STC、STM32与ESP32的型号密码与设计哲学

本文解析了STC、STM32和ESP32三大主流单片机系列的型号命名规则,揭示了其背后的设计哲学与市场策略。通过详细解读STC89C52、STM32F103C8T6等具体型号,帮助开发者理解芯片核心特性、性能等级及适用场景,为嵌入式系统选型提供实用指南。

g5h6i的博客 764

2024-05-27 问AI: 在深度学习中,CNTK 是什么?

CNTK的性能优势主要体现在其高效的计算能力和优化的内存管理上。除了上述特点外,CNTK还提供了Python接口,这使得用户可以在Python环境中直接调用CNTK的功能,从而利用Python语言的简洁性和强大的生态系统。然而,随着其他深度学习框架的不断发展和竞争,如 TensorFlow、PyTorch 等,CNTK 的市场份额相对较小,但它仍然在一些特定的领域和项目中得到应用。例如,在大规模的语音识别、图像识别等任务中,CNTK 可以帮助研究人员和开发者快速训练复杂的模型,提高模型的准确性和性能。

baidu_24377669的博客 1536

ADS系列之SI&PI仿真笔记:ADS多种版本的安装、卸载&重装(一)

此系列仅作为ADS学习过程的记录,如有错误的地方还请大佬指正! 一、下载&安装 ADS软件下载&安装还算比较简单,目前接触到有两个版本:ADS2017和ADS2019。这里贴下链接,破解教程里面都有: ADS2017下载地址:https://pan.baidu.com/s/1l-Bs9owKRmp5Pv0Mt92OYA 提取码:wuzf ADS2019下载地址:吴川斌的博客-w...

Claudedy的博客 3万+

【Keras速成】Keras图像分类从模型自定义到测试

这是给大家准备的Keras速成例子这一次我们讲讲keras这个简单、流行的深度学习框架,一个图像分类任务从训练到测试出结果的全流程。相关的代码、数据都在我们 Git 上,希望大家 Fol...

weixin_40920183的博客 292

实战复盘:纷玩岛(Livelab)候补订单微信支付协议的逆向与复现

通过本次对纷玩岛候补支付接口的分析,我们实现了一个脱离 App UI 的轻量级支付发起器。这不仅验证了其API的设计逻辑(Standby -> PrePayInfo 分层设计),也为后续的自动化监控或辅助抢票工具提供了支付环节的技术验证。技术本无罪,关键在于如何使用。理解这些底层协议,有助于我们写出更健壮的代码,也能在遇到线上支付问题时快速定位是业务层(API)问题还是通道层(微信)问题。

猫敷雪 804

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V

上一章节我们已经成功启动了`Ubuntu`,但是由于`Ubuntu`占用系统空间过大,所以我转向占用较小的`busybox`,预计就占用`30M`左右。开始移植busybox,基于riscv64

DSMGUOGUO的博客 857

【好专栏】深度学习框架不会用?12大主流深度学习框架快速入门,你值得拥有!...

欢迎来到【好专栏】,本次我们给大家推荐一个专栏,名为《12 大深度学习开源框架快速入门》,这个专栏为介绍了深度学习的 12 大主流框架,附带实践案例,能够让读者快速掌握深度学习框架的使用...

Leong Blog 516

Claude Code 错误解决方案 使用策略拒绝 Usage Policy refusal

摘要:本文分析了Claude Code API请求被拒绝的问题,当违反Usage Policy时会显示错误提示。根因包括请求内容违规、模型敏感度差异或历史消息影响。解决方案包括修改请求措辞、切换至Sonnet 4.5模型或开启新会话。文章详细追踪了错误链路,提供了核心代码分析,并给出验证方法和最佳实践建议,帮助用户避免触发API拒绝机制。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 990

【通知】有三AI发布150页深度学习开源框架指导手册与GitHub项目,欢迎加入我们的开源团队...

之前我们公众号输出了很多深度学习开源框架相关的内容,今天整理成技术手册给大家分享以方便阅读,下面是详细信息。开源框架背景现如今开源生态非常完善,深度学习相关的开源框架众多,光是为人熟知的...

hacker_long的专栏 698

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深度学习的新伙伴:Python遇见CNTK

CNTK,全称Cognitive Toolkit,是由微软研究院开发的一个开源深度学习框架。它专注于高性能的模型训练,特别适用于大规模数据集的处理。CNTK支持多种类型的神经网络,包括卷积神经网络(CNN)、循环神经网络(RNN)等,并且能够很好地利用CPU和GPU资源进行并行计算。相比于其他框架,CNTK的优势在于其高效的计算能力和易于使用的API。它允许开发者以自然的方式描述模型,而不需要过多地担心底层细节。此外,CNTK还提供了丰富的文档和支持社区,帮助初学者快速上手。定义输入变量。

master_chenchen的博客 1664

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

用 CNTK 搞深度学习 (一) 入门

Computational Network Toolkit (CNTK) 是微软出品的开源深度学习工具包。本文介绍CNTK的基本内容,如何写CNTK的网络定义语言,以及跑通一个简单的例子。 根据微软开发者的描述,CNTK的性能比Caffe,Theano, TensoFlow等主流工具都要强。它支持CPU和GPU模式,所以没有GPU,或者神经网络比较小的实验,直接用CPU版的CNTK跑就行了。 ...

weixin_33796205的博客 509

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于CNTK/C#实现图像分类【附部分源码及模型】

本文基于CNTK实现分类,并以之前的不同,本次使用C#实现,不适用python,python版的CNTK比较简单,而且python版的cntk个人感觉没什么必要,毕竟是微软的框架因此本人强迫症犯了,所以使用C#实现CNTK环境版本:cntk 2.7cuda 10.1

ctu_sue的博客 1520

Microsoft Cognitive Toolkit-快速指南

Microsoft Cognitive Toolkit-快速指南 (Microsoft Cognitive Toolkit - Quick Guide) Advertisements 广告 Previous Page 上一页 Next Page 下一页 Microsoft认知工具包(CNTK)-简介 (Microsoft Cognitive Toolkit ...

cunzai1985的博客 1789

CNTK深度学习框架全面解析:从安装到工业级部署的完整指南

你是否还在为深度学习模型训练速度慢、资源消耗大而烦恼?是否在寻找一个既能高效处理大规模数据,又能灵活部署到各种环境的深度学习框架?本文将全面解析微软认知工具包(CNTK),帮助你从安装配置到工业级部署,轻松掌握这一强大工具。读完本文,你将能够: - 在Windows和Linux系统上快速搭建CNTK开发环境 - 利用预训练模型加速开发过程 - 通过实际案例掌握CNTK的核心功能 - 了解CNTK...

gitblog_01125的博客 490

【GitHub项目推荐--微软认知工具包(CNTK),一个开源深度学习工具包】【转载】

2. 模型丰富:内置多种深度学习模型,如深度神经网络(DNNs)、卷积神经网络(CNNs)、循环神经网络(RNNs)、长短时记忆网络(LSTMs)、逻辑回归和最大熵模型等。微软认知工具包(CNTK)是一个开源的深度学习工具包,最初由微软研究院开发,现在在GitHub上公开发布,任何人都可以使用和贡献。7. 灵活的架构:CNTK采用有向图技术,用户可以灵活地定义和修改计算图,以适应不同的深度学习任务。8. 文档和示例:CNTK提供了详细的文档和丰富的示例,帮助用户快速上手。

j8267643的博客 752

微软工具包_Microsoft认知工具包(CNTK)-入门

微软工具包 Microsoft认知工具包(CNTK)-入门 (Microsoft Cognitive Toolkit (CNTK) - Getting Started) Advertisements 广告 Previous Page 上一页 Next Page 下一页 Here, we will understand about the installation...

cunzai1985的博客 1270

微软工具包_Microsoft认知工具包(CNTK)-简介

微软工具包 Microsoft认知工具包(CNTK)-简介 (Microsoft Cognitive Toolkit (CNTK) - Introduction) Advertisements 广告 Previous Page 上一页 Next Page 下一页 In this chapter, we will learn what is CNTK, its fe...

cunzai1985的博客 1628

主流深度学习框架对比(TensorFlow、Keras、MXNet、PyTorch)

近几年来,深度学习的研究和应用的热潮持续高涨,各种开源深度学习框架层出不穷,包括TensorFlow,Keras,MXNet,PyTorch,CNTK,Theano,Caffe,DeepLearning4,Lasagne,Neon,等等。Google,Microsoft等商业巨头都加入了这场深度学习框架大战,当下最主流的框架当属TensorFlow,Keras,MXNet,PyTorch,接下来...

Rhao的博客 2536

15 个常用的顶级人工智能工具

导读:人工智能是科技研究中最热门的方向之一。 IBM、谷歌、微软、Facebook和亚马逊等公司都在研发上投入大量的资金、或者收购那些在机器学习、神经网络、自然语言和图像处理等领域取得了进展的初创公司。 在本文中,我们将聚焦于开源的人工智能工具,详细的了解下最著名的 15 个开源人工智能项目。 欢迎加入966367816或扫描文末的二维码大家一起学习人工智能知识 1、Caffe 它是由贾扬清在加州大学伯克利分校的读博时创造的,Caffe是一个基于表达体系结构和可扩展代码的深度学习框架。..

Java_college的博客 8572

WeChatMsg完全指南:3步永久备份微信聊天记录的终极解决方案

你是否曾担心珍贵的微信对话会随着手机更换或系统升级而消失?那些与亲友的温馨对话、重要的商务沟通、承载着回忆的日常交流,一旦丢失就再也无法找回。今天,我要为你介绍一个改变游戏规则的开源工具——WeChatMsg,它能让你**永久保存微信聊天记录**,将易逝的数字记忆转化为宝贵的个人数字资产。 ## 为什么你需要专业的聊天记录管理工具? 微信作为我们日常生活中不可或缺的通讯工具,在数据管理方面却存

gitblog_01190的博客 381
上一篇: 【AI白身境】只会用Python?g++,CMake和Makefile了解一下​​​​​​​
下一篇: 【学员分享】程序员效率神器,最常用VIM插件安装大全
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值