精华内容
下载资源
问答
  • 用自己训练AI玩王者荣耀是什么体验?

    万次阅读 多人点赞 2021-01-08 13:06:52
    一、前言 ...用自己训练AI玩王者荣耀是什么体验? 视频两倍速播放,只训练了一个「后裔」英雄,如果想用其他英雄,可以自己训练。 今天继续手把手教学,你准备好了吗? 二、实现原理 为了让我.

    一、前言

    大家好,我是 Jack 。

    「王者荣耀」想必大家就算没有玩过,也都听过。

    腾讯 AI Lab 开发的策略协作型“绝悟”,最强 AI 分分教你做人。

    但那个是像 Alpha Go 一样,需要掌握海量数据和机器的团队,才能玩得起的。

    今天,就给大家带来一个「平民版」,咱们都能玩的王者荣耀AI。

    先睹为快:

    用自己训练的AI玩王者荣耀是什么体验?

    视频两倍速播放,只训练了一个「后裔」英雄,如果想用其他英雄,可以自己训练。

    今天继续手把手教学,你准备好了吗?

    二、实现原理

    为了让我们的代码能够控制手机的「王者荣耀」,我们需要实现在电脑上操控手机。

    需要用到什么呢?scrcpy 和 minitouch。

    scrcpy 可以将安卓手机的画面投屏到电脑桌面显示上并进行操控。

    简单地说,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘输入、电脑剪切板复制粘贴、拖放文件传输到手机、以及拖放 APK 文件进行安装。

    使用 scrcpy 你无需 ROOT 手机,也不需在手机上安装 APP,只需在系统设置里启用“USB调试”( adb 调试) 即可。

    minitouch 提供了一个 socket 接口用在 Android 设备上的多点触摸事件以及手势。也是无需 ROOT 手机。

    用 scrcpy 获取游戏画面,获取 scrcpy 的句柄,然后截图,根据图片生成操作指令,然后利用 minitouch 高效的执行这些操作指令。

    所以关键在于,如何根据图片生成操作指令

    没错,用 Transformer。

    上两天火的 DALL·E 都见到了吧?OpenAI 最新发布的,它可以魔法一般按照自然语言文字描述直接生成对应图片!

    比如输入文本:鳄梨形状的扶手椅。

    AI 生成的图像:

    用自己训练的AI玩王者荣耀是什么体验?

    这生产效果真是堪称神奇!自然语言与视觉的壁垒正在被逐渐打通。

    用自己训练的AI玩王者荣耀是什么体验?

    反过来,图片生成描述,更简单了,这样的工作几年前就用了。

    使用Transformer,根据游戏图像,生成当前画面操作描述

    用自己训练的AI玩王者荣耀是什么体验?

    比如前进、攻击、释放技能。

    三、算法测试

    首先你得有个能跑 Transformer 的显卡,安装需要的第三方库,例如 pyminitouch、pytorch 等。

    然后安装 scrcpy,这个安装教程很多,百度一搜一大把,将所有东西放在与下载的代码同级目录下。

    用自己训练的AI玩王者荣耀是什么体验?

    下载训练好的模型文件。

    还是老规矩,我将代码和模型打包了,方便大家直接下载(提取码:jack)。

    https://pan.baidu.com/s/1u9zy04L8kvPwyElD0XvpAQ

    需要注意的是,不同手机的 minitouch 配置可能有所不同,代码的测试机器分辨率是 1080*2160,这里需要根据自己的情况进行修改。

    配置好环境后,就可以运行代码了。

    运行文件“启动和结束进程.py”,启动scrcpy。把“训练数据截取_A.py” 中的两项改成你的设备:

    用自己训练的AI玩王者荣耀是什么体验?

    启动王者荣耀进入 5v5 人机对战后,运行 “训练数据截取_A.py” 即可。

    赶快自己体验一波吧!训练一个你最爱的英雄!

    项目地址:https://github.com/FengQuanLi/ResnetGPT

    四、最后

    这个项目的代码,有些凌乱,还有硬核的中文变量。

    算法性能有待提高,目前打打人机还行。

    后面有时间,我会做整理和升级,在这个基础上改进版本,看情况吧~

    祝大家周末玩的开心,我是 Jack ,我们下期见。

    文章持续更新,可以微信公众号搜索【JackCui-AI】第一时间阅读,本文 GitHub https://github.com/Jack-Cherish/PythonPark 已经收录,有大厂面试完整考点,欢迎 Star。
    展开全文
  • 训练过程中,一上来精度就是1,测试也1,虽然loss一直在下降 但感觉肯定不对啊,最后实现的效果也不行,可能出现什么问题了?
  • 七牛云的AI部门属于容器云部门的客户,针对于AI训练这样一个特殊的训练场景,具体落实到k8s的实践上具体实施工作怎样做的,带给七牛怎样的好处,以及从中碰到一些什么样的问题陆龙文对此做了分享。七牛本身有一个...
  • 人工智能(AI)之模型训练是什么

    千次阅读 2020-03-02 23:19:09
    在机器学习中,经常听到一个词:“模型训练”,不禁疑惑:模型是什么东西?怎么样训练的?训练后得到的结果是什么? 下面用图简单描述个人理解: 在人工智能中,面对大量用户输入的数据/素材,如果要在杂乱无章...

    在机器学习中,经常听到一个词:“模型训练”,不禁疑惑:模型是什么东西?怎么样训练的?训练后得到的结果是什么?

    下面用图简单描述个人理解:

    在人工智能中,面对大量用户输入的数据/素材,如果要在杂乱无章的内容准确、容易地识别,输出我们期待输出的图像/语音,并不是那么容易的。因此算法就显得尤为重要了。算法就是我们所说的模型。

    当然,算法的内容,除了核心识别引擎,也包括各种配置参数,例如:语音智能识别的比特率、采样率、音色、音调、音高、音频、抑扬顿挫、方言、噪音等乱七八糟的参数。成熟的识别引擎,核心内容一般不会经常变化的,为实现”识别成功“这一目标,我们只能对配置参数去做调整。对于不同的输入,我们会配置不同参数值,最后在结果统计取一个各方比较均衡、识别率较高的一组参数值,这组参数值,就是我们训练后得到的结果,这就是训练的过程,也叫模型训练。

    所以:

    模型 = 算法

    训练 = 为达成高识别率的目标,使用大数据,找出最优配置参数的过程

    结果 = 确定参数配置,实现高识别率

     

    展开全文
  • “ 阅读本文大概需要 3 分钟。 ”「王者荣耀」想必大家就算没有玩过,也都听过。腾讯 AI Lab 开发的策略协作型 “绝悟”,最强 AI 分分教你做人。但那个像 Alpha Go 一...

    阅读本文大概需要 3 分钟。

    「王者荣耀」想必大家就算没有玩过,也都听过。

    腾讯 AI Lab 开发的策略协作型 “绝悟”,最强 AI 分分教你做人。

    但那个是像 Alpha Go 一样,需要掌握海量数据和机器的团队,才能玩得起的。

    今天,就给大家带来一个「平民版」,咱们都能玩的王者荣耀 AI。

    先睹为快:

    视频两倍速播放,只训练了一个「后裔」英雄,如果想用其他英雄,可以自己训练。

    今天继续手把手教学,你准备好了吗?

    1

    实现原理

    为了让我们的代码能够控制手机的「王者荣耀」,我们需要实现在电脑上操控手机。

    需要用到什么呢?scrcpy 和 minitouch。

    scrcpy 可以将安卓手机的画面投屏到电脑桌面显示上并进行操控。

    简单地说,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘输入、电脑剪切板复制粘贴、拖放文件传输到手机、以及拖放 APK 文件进行安装。

    使用 scrcpy 你无需 ROOT 手机,也不需在手机上安装 APP,只需在系统设置里启用 “USB 调试”( adb 调试) 即可。

    minitouch 提供了一个 socket 接口用在 Android 设备上的多点触摸事件以及手势。也是无需 ROOT 手机。

    用 scrcpy 获取游戏画面,获取 scrcpy 的句柄,然后截图,根据图片生成操作指令,然后利用 minitouch 高效的执行这些操作指令。

    所以关键在于,如何根据图片生成操作指令

    没错,用 Transformer。

    上两天火的 DALL・E 都见到了吧?OpenAI 最新发布的,它可以魔法一般按照自然语言文字描述直接生成对应图片!

    比如输入文本:鳄梨形状的扶手椅。

    AI 生成的图像:

    这生产效果真是堪称神奇!自然语言与视觉的壁垒正在被逐渐打通。

    反过来,图片生成描述,更简单了,这样的工作几年前就用了。

    使用 Transformer,根据游戏图像,生成当前画面操作描述

    比如前进、攻击、释放技能。

    2

    算法测试

    首先你得有个能跑 Transformer 的显卡,安装需要的第三方库,例如 pyminitouch、pytorch 等。

    然后安装 scrcpy,这个安装教程很多,百度一搜一大把,将所有东西放在与下载的代码同级目录下。

    下载训练好的模型文件。

    还是老规矩,我将代码和模型打包了,方便大家直接下载(提取码:jack)。

    https://pan.baidu.com/s/19kjTuX4DeTVE3B3HGw0uOw

    需要注意的是,不同手机的 minitouch 配置可能有所不同,代码的测试机器分辨率是 1080*2160,这里需要根据自己的情况进行修改。

    配置好环境后,就可以运行代码了。

    运行文件 “启动和结束进程.py”,启动 scrcpy。把 “训练数据截取_A.py” 中的两项改成你的设备:

    启动王者荣耀进入 5v5 人机对战后,运行 “训练数据截取_A.py” 即可。

    赶快自己体验一波吧!训练一个你最爱的英雄!

    项目地址:

    https://github.com/FengQuanLi/ResnetGPT

    3

    最后

    这个项目的代码,有些凌乱,还有硬核的中文变量。

    算法性能有待提高,目前打打人机还行。

    后面有时间,我会做整理和升级,在这个基础上改进版本,看情况吧~

    好文和朋友一起看~

    展开全文
  • 接上回书,那么如何写一个入门的简单AI训练(0-9)数字图片试别AI。本文的程序,配合我训练的模型试别准确率只有98.8%,不过也算是给我开辟了新的知识面。 1.为什么使用卷积神经网络 原因有二:1.直观上,使用...

           接上回书,那么如何写一个入门的简单AI训练(0-9)数字图片试别AI。本文的程序,配合我训练的模型试别准确率只有98.8%,不过也是算是给我开辟了新的知识面。

        1.为什么使用卷积神经网络

            原因有二:1.直观上,使用卷积比全连接网络少很多参数(百度上说的);2.我经理直接叫我用这个。哈哈哈哈 = =,我只是大概知道,可以用来处理图像。如果有同僚看到这篇文章,有别的见解欢迎指出。

        2.在写这个训练AI的代码之前,需要准备什么

            使用卷积训练AI,也就是教会AI试别各种数字的是需要大量的数据进行训练了。因为是入门,所以我的训练图片是32*32的黑白图像,也就是用画图工具画出来的。0-9每个数字画了十张。然后写了个python脚本,用每个数字的10张样本,经过简单平移或者旋转生成1000张图。0-9总共是10000张图作为所有的输入数据。设计好输入和输入,安装好相应的库,例如tensorflow,numpy

        3.代码主要分为4个部分:读取图片,读取训练集和校验集,训练,使用模型

          下面开始进入代码部分,代码部分有足够的注释:

           a.读取图片:

    def read_sample(file_path):
        ret = numpy.zeros((32, 32))                 #使用numpy构建32*32的数组
        im = Image.open(file_path)
        rgb_im = im.convert('RGB')                  #将打开的image指定真彩色模式 
        for i in range(32):
            for j in range(32):
                r, g, b = rgb_im.getpixel((i, j))   #读取每个点的r,g,b
                average = (r + b + g)/3             
                if average >= 127:                  #因为是黑白图像,非黑即白rgb三原色综合是255,所以可以使用127来区分
                    ret[i, j] =  0
                else:
                    ret[i, j] = 1
    
        return ret
    
    # 可以使用以下代码输入一下看看图形转化为数字输入的结果
    # ret = read_sample("C:/Users/bfs/Desktop/learning_ai/0/0_1.png")  
    # for j in range(32):
    #     for i in range(32):
    #         print(int(ret[i, j]), end=' ')
    #     print('')      
    # 

             这里随便使用一张图0的图打印结果如下

            可以清晰的看到,转换成数字输入的结果,的确是一个0。

             b.读取训练集和校验集

             这里补充一下,在所有的数据里面,需要把数据分为训练和校验。校验用来验证训练的结果。校验满意后,再生成模型。之后就是直接使用模型了。

    def read_trainset_and_validateset():
        trainset_samples = []               #定义训练集
        validateset_samples = []            #定义校验集
    
        for i in range(10):
            for root, dirs, files in os.walk("out/"+str(i), topdown=False):
                for name in files:
                    pic_path = os.path.join(root, name)
                    rand_num = random.random()
                    if rand_num > 0.9:                                            #90%为训练集,剩下10%为校验集
                        trainset_samples.append( (read_sample(pic_path), i) )     #插入训练集,内容为 (图像内容,数字)
                    else:
                        validateset_samples.append( (read_sample(pic_path), i) )  #插入校验集,内容为 (图像内容,数字)
    
        return (trainset_samples, validateset_samples)

           c.训练

    def train():
        print("loading....")
        trainset_samples, valideteset_samples = read_trainset_and_validateset()    #获取训练集和校验集
        x = numpy.zeros((len(trainset_samples), 32, 32, 1))                        #构建训练集, 10个32*32的1通道神经元输入
        y = numpy.zeros((len(trainset_samples), 10))                               #构建训练集, 二维0-9的神经元输出
        validate_x = numpy.zeros((len(valideteset_samples), 32, 32, 1))            #构建校验集, 10个32*32的1通道神经元输入
        validate_y = numpy.zeros((len(valideteset_samples), 10))                   #构建校验集, 二维0-9的神经元输出
        print("conver......")
    
        for i in range(len(trainset_samples)):
            sample, sample_out = trainset_samples[i]            #sample对应读取的图像结果, sample_out对应结果为哪个数字
            for xi in range(32):    
                for yi in range(32):
                    x[i, xi, yi, 0] = sample[xi, yi]            #训练集输入, i对应目前是哪个神经元的输入, sample为读取图像的结果
    
            y[i, sample_out] = 1                                #训练集输出, 意思为这个神经元的输出结果为1, 即当以上神经元输入时,对应的这个神经元的sample_out的预测结果为1(100%)
    
        for i in range(len(valideteset_samples)):
            sample, sample_out = valideteset_samples[i]         #sample对应读取的图像结果, sample_out对应结果为哪个数字
            for xi in range(32):
                for yi in range(32):
                    validate_x[i, xi, yi, 0] = sample[xi, yi]   #校验集输入, i对应目前是哪个神经元的输入, sample为读取图像的结果
    
            validate_y[i, sample_out] = 1                       #校验集输出, 意思为这个神经元的输出结果为1, 即当以上神经元输入时,对应的这个神经元的sample_out的预测结果为1(100%)
    
        input = keras.Input(shape=(32,32,1))                                                    #输入层,32*32个神经元输入,一个输入通道,因为只是一个二维的黑白图像,一个输入通道即可。复杂的情况则需要多个输入通道,可以自己看看别的例子
        layer = keras.layers.Conv2D(filters=32, kernel_size=(5,5), activation='relu')(input)    #卷积层,5*5个神经元感受视野,32个卷积核,激励函数relu做非线性映射
        layer = keras.layers.Conv2D(filters=8, kernel_size=(5,5), activation='relu')(layer)     #卷积层,5*5个神经元感受视野,8个卷积核,激励函数relu做非线性映射
        layer = keras.layers.MaxPool2D(pool_size=(2, 2))(layer)                                 #池化层,maxpool取“池化视野”矩阵中的最大值,当输入经过卷积层时,得到的feature map (特征图)还是比较大,可以通过池化层来对每一个 feature map 进行降维操作
        layer = keras.layers.Dropout(rate=0.4)(layer)                                           #该层的作用相当于对参数进行正则化来防止模型过拟合
        layer = keras.layers.Flatten()(layer)                                                   #将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。
        layer = keras.layers.Dense(128, activation='relu')(layer)                               #全连接层,有128个神经元,激活函数采用‘relu’
        layer = keras.layers.Dense(10, activation='softmax')(layer)                             #输出层,有10个神经元,每个神经元对应一个类别,输出值表示样本属于该类别的概率大小。
    
        model = keras.Model(input, layer)                                                       #创建模型
        model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])  #指定一些参数
        print("training.....")
        model.fit(x=x, y=y, batch_size=200, epochs=40, validation_data=(validate_x, validate_y)) #训练模型
    
        # model.save('C:/Users/bfs/Desktop/learning_ai/pictrue_model.h5')  #训练满意的话则保存
    
        return model

           训练结果为

           可以看到校验集的校验结果精确度达到98.8%左右

          d.使用模型

    def verify_modle():
        m_model = keras.models.load_model('C:/Users/bfs/Desktop/learning_ai/pictrue_model'+'.h5')
        verify_sample = read_sample('C:/Users/bfs/Desktop/learning_ai/3.png')  #我这里随便使用一张图片来进行实际预测
        test_x = numpy.zeros((1, 32, 32, 1))
        for xi in range(32):
                for yi in range(32):
                    test_x[0, xi, yi, 0] = verify_sample[xi, yi]
        predict_result = m_model.predict(x=test_x)               #导入实际使用时的图片数据
    
        ret = 0
        max_prob = max(predict_result[0])                        #返回最大的概率。训练结果是一个二维数组,相当于一列0-9的概率。最大的概率则为预测结果
        for x in range(10):
            if max_prob == predict_result[0, x]:
                ret = x
        
        print('解析图片结果结果为', ret)

          以下为完整代码:

    #coding:utf-8
    from PIL import Image, ImageChops
    import os
    import numpy
    import random
    import numpy as np
    import tensorflow as tf
    from tensorflow import keras
    
    def read_sample(file_path):
        ret = numpy.zeros((32, 32))                 #使用numpy构建32*32的数组
        im = Image.open(file_path)
        rgb_im = im.convert('RGB')                  #将打开的image指定真彩色模式 
        for i in range(32):
            for j in range(32):
                r, g, b = rgb_im.getpixel((i, j))   #读取每个点的r,g,b
                average = (r + b + g)/3             
                if average >= 127:                  #因为是黑白图像,非黑即白rgb三原色综合是255,所以可以使用127来区分
                    ret[i, j] =  0
                else:
                    ret[i, j] = 1
    
        return ret
    
    def read_trainset_and_validateset():
        trainset_samples = []               #定义训练集
        validateset_samples = []            #定义校验集
    
        for i in range(10):
            for root, dirs, files in os.walk("out/"+str(i), topdown=False):
                for name in files:
                    pic_path = os.path.join(root, name)
                    rand_num = random.random()
                    if rand_num > 0.9:                                            #90%为训练集,剩下10%为校验集
                        trainset_samples.append( (read_sample(pic_path), i) )     #插入训练集,内容为 (图像内容,数字)
                    else:
                        validateset_samples.append( (read_sample(pic_path), i) )  #插入校验集,内容为 (图像内容,数字)
    
        return (trainset_samples, validateset_samples)
    
    
    # ret = read_sample("C:/Users/bfs/Desktop/learning_ai/0/0_1.png")  
    # for j in range(32):
    #     for i in range(32):
    #         print(int(ret[i, j]), end=' ')
    #     print('')      
    # 
     
    def train():
        print("loading....")
        trainset_samples, valideteset_samples = read_trainset_and_validateset()    #获取训练集和校验集
        x = numpy.zeros((len(trainset_samples), 32, 32, 1))                        #构建训练集, 10个32*32的1通道神经元输入
        y = numpy.zeros((len(trainset_samples), 10))                               #构建训练集, 二维0-9的神经元输出
        validate_x = numpy.zeros((len(valideteset_samples), 32, 32, 1))            #构建校验集, 10个32*32的1通道神经元输入
        validate_y = numpy.zeros((len(valideteset_samples), 10))                   #构建校验集, 二维0-9的神经元输出
        print("conver......")
    
        for i in range(len(trainset_samples)):
            sample, sample_out = trainset_samples[i]            #sample对应读取的图像结果, sample_out对应结果为哪个数字
            for xi in range(32):    
                for yi in range(32):
                    x[i, xi, yi, 0] = sample[xi, yi]            #训练集输入, i对应目前是哪个神经元的输入, sample为读取图像的结果
    
            y[i, sample_out] = 1                                #训练集输出, 意思为这个神经元的输出结果为1, 即当以上神经元输入时,对应的这个神经元的sample_out的预测结果为1(100%)
    
        for i in range(len(valideteset_samples)):
            sample, sample_out = valideteset_samples[i]         #sample对应读取的图像结果, sample_out对应结果为哪个数字
            for xi in range(32):
                for yi in range(32):
                    validate_x[i, xi, yi, 0] = sample[xi, yi]   #校验集输入, i对应目前是哪个神经元的输入, sample为读取图像的结果
    
            validate_y[i, sample_out] = 1                       #校验集输出, 意思为这个神经元的输出结果为1, 即当以上神经元输入时,对应的这个神经元的sample_out的预测结果为1(100%)
    
        input = keras.Input(shape=(32,32,1))                                                    #输入层,32*32个神经元输入,一个输入通道,因为只是一个二维的黑白图像,一个输入通道即可。复杂的情况则需要多个输入通道,可以自己看看别的例子
        layer = keras.layers.Conv2D(filters=32, kernel_size=(5,5), activation='relu')(input)    #卷积层,5*5个神经元感受视野,32个卷积核,激励函数relu做非线性映射
        layer = keras.layers.Conv2D(filters=8, kernel_size=(5,5), activation='relu')(layer)     #卷积层,5*5个神经元感受视野,8个卷积核,激励函数relu做非线性映射
        layer = keras.layers.MaxPool2D(pool_size=(2, 2))(layer)                                 #池化层,maxpool取“池化视野”矩阵中的最大值,当输入经过卷积层时,得到的feature map (特征图)还是比较大,可以通过池化层来对每一个 feature map 进行降维操作
        layer = keras.layers.Dropout(rate=0.4)(layer)                                           #该层的作用相当于对参数进行正则化来防止模型过拟合
        layer = keras.layers.Flatten()(layer)                                                   #将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。
        layer = keras.layers.Dense(128, activation='relu')(layer)                               #全连接层,有128个神经元,激活函数采用‘relu’
        layer = keras.layers.Dense(10, activation='softmax')(layer)                             #输出层,有10个神经元,每个神经元对应一个类别,输出值表示样本属于该类别的概率大小。
    
        model = keras.Model(input, layer)                                                       #创建模型
        model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])  #指定一些参数
        print("training.....")
        model.fit(x=x, y=y, batch_size=200, epochs=40, validation_data=(validate_x, validate_y)) #训练模型
    
        model.save('C:/Users/bfs/Desktop/learning_ai/pictrue_model.h5')
    
        return model
    
    def verify_modle():
        m_model = keras.models.load_model('C:/Users/bfs/Desktop/learning_ai/pictrue_model'+'.h5')
        verify_sample = read_sample('C:/Users/bfs/Desktop/learning_ai/3.png')  #我这里随便使用一张图片来进行实际预测
        test_x = numpy.zeros((1, 32, 32, 1))
        for xi in range(32):
                for yi in range(32):
                    test_x[0, xi, yi, 0] = verify_sample[xi, yi]
        predict_result = m_model.predict(x=test_x)               #导入实际使用时的图片数据
    
        ret = 0
        max_prob = max(predict_result[0])                        #返回最大的概率。训练结果是一个二维数组,相当于一列0-9的概率。最大的概率则为预测结果
        for x in range(10):
            if max_prob == predict_result[0, x]:
                ret = x
        
        print('解析图片结果结果为', ret)
    
    if __name__ == "__main__":
        # train()
        verify_modle()
    
    

              使用图像3导入模型结果为:

            最后有几点需要注意。

            1.我这里写的是很简单的0-9手写数字试别,所以再构建输入的时候只有一个输入通道,如果是复杂的问题,可能需要多个输入通道,比如彩色的图像,可能需要R,G,B三个输入通道。

            2.训练AI是这么个过程,给定输入,给定输入,让AI像人一样去学习。就像一个人要学习一样,告诉自己,这个图像3输入的结果是3。是一定要给出输出的。

            3.AI模型就像我们以前写的函数,给了输入,它就会给输出。像这个0-9的输入是为数字0-9的概率。而不是直接告诉你是什么数字,取出最大的概率对应的数字,就是AI觉得这张图是个什么数字.

            4.我也是初学者,写的注释什么的都是自己的理解,可能不对。如果有发现错误的/有歧义的地方。欢迎指出

            5.上面的训练就是不断利用卷积神经网络提取各种图像的特征,最后当给定一副新的图,就去匹配其相应的特征,给出结果。

            增加一些知识补充连接:

            1.知乎<如何通俗易懂的理解卷积> https://www.zhihu.com/question/22298352/answer/228543288
            2.卷积神经网络详解 - 卷积层逻辑篇  https://blog.csdn.net/tjlakewalker/article/details/83275322

    展开全文
  • 视觉ai训练营第一天学习笔记 收获:了解了关于阿里云在视觉ai方面的功能。如果未来有需求,就可以直接调用。 而且看着老师人脸检测定位教程,知道官方文档的正确使用过程,AccessKey和bucket真正是什么意思。上一次...
  • 华为发布全球最快AI训练集群...据了解,Atlas 900由数千颗昇腾处理器组成,当前全球最快的AI训练集群。 有多快?在衡量AI计算能力的金标准ResNet-50模型训练中,Atlas 900只用了59.8秒就完成了训练,比原来的世...
  • 什么是「软件2.0」?其实就是神经网络。 在「软件1.0」时代,程序员用Java、Python、C++等语言进行编写计算机命令,每写下一行代码,就把程序空间中的某个具体的点定义为一个需要的行为。 而「软件2.0」则是用神经...
  • AI是人工智能(Artificial Intelligence)的缩写,通俗的理解就是给计算机赋予人的思维方式和智慧,以及自我学习。 比如之前很火的下围棋的阿尔法围棋(AlphaGo,阿尔法狗),可以理解为一种人工智能,它每天可以和...
  • AI数据标注是什么

    2021-05-14 08:44:10
    AI数据标注器被称为“人工智能背后的劳动”。“数据人工智能的血液。如今,基于大数据的人工智能一个数据智能深度学习的时代。可以说,谁掌握了数据,谁就有可能做得很好。最基础的数据标注图片框。比如检测...
  • 1.基础概念 我们最常见的图像格式通常为3通道的jpg格式 三通道图像指具有RGB三种通道的图像,简单来...如果Alpha通道全为255,则此时的4通道和3通道就没有什么区别了 由上图可已看出,4通道图像除图像主体外,背
  • 视觉生产技术 一.定义和分类: 1.1.定义:通过一个/一系列视觉过程,产出新的视觉表达。 产出:人或机器能够感知的图像视频,而不是标签或特征; 要求:新的,和输入不一样...分割:识别 + 检测 + 知道每一个像素是什么
  • 往期视频(前往有三AI公众号...验证集和测试集的定位不同的,一个模型需要有好的泛化能力,需要同时在训练过的数据和没训练过的数据集上取得好的结果。 所以将训练集用于训练,验证集用于调参数,然后反复迭代...
  • 深度报告AI?新职位人工智能训练师 1-3?岁的互联网人人工智能训练师的主要来源而人 工智能产品经理将会最...公司为什么要设立这样一个职位职责边界是什么什么 样的人适合职位发展前景如何等等问题都还是业内空 白
  • Root 编译自 OpenAI 博客量子位 出品 | 公众号 QbitAI训练一个AI,往往需要喂大量的正确的合适的样例。用什么样例合适?判断样例正确的标准啥?又要多少人力来标注训练的数据?这些问题想想都头大@_@所以呢,Open...
  • 1109AI百题训练

    2020-11-10 11:03:17
    文章目录问题清单为什么要对特征做归一化什么是归一化归一化的作用常用的归一化方法最大最小标准化(Min-Max Normalization)Z-score标准化方法非线性归一化应用场景说明归一化和标准化的区别什么是组合特征?...
  • 参加阿里云AI训练营的第5天,也最后一天了。今天创意日,想做什么就做什么,没有题目约束。 那么我打算做一个简单的识别图片中的文字的应用,并部署上线,以后也可能经常会用到。 项目用到的文档地址 阿里云达摩...
  • 摘要:MindSpore华为公司推出的新一代深度学习框架,源于全产业的最佳实践,最佳匹配昇腾处理器算力,支持终端、边缘、云全场景灵活部署,开创全新的AI编程范式,降低AI开发门槛。 MindSpore华为公司推出的新...
  • AI模型有啥用? 随着人工智能的技术不断成熟, AI逐渐在各行业内落地。我们先来看几个场景: ...以上这些场景,都需要大量的算法工程师、AI科学家,经过不断的演算、测试、训练,来搭建深度神经网络模型...
  • 编译 | Debra编辑 | NatalieAI 前线导读: 训练人工智能系统的方法很...“辩论”这个词听起来和对抗生成神经网络(GAN)中的“Anti”有点异曲同工之妙,不知这种方法怎样的,为什么说它一种更加安全的技术呢?更...
  • Etiketai设计用于标记图像的在线工具,可用于训练AI模型。 完全客户端,没有对任何服务器的请求。 它通过Next.js + Preact实现的。 批注以PASCAL VOC格式(ImageNet使用的格式)另存为XML文件。 此外,它还...
  • 感觉opencv除开一些基础的图像处理(当然这已经占了很大一部分),AI方面更多用的机器学习,比如SVM,人工提取特征训练,深度学习什么 ,opencv我看到有的书有写(比如《opencv4计算机视觉项目实战》在最后一章...
  • 晓查 发自 凹非寺量子位 报道 | 公众号 QbitAI对土豪来说最痛苦的是什么,就是有一大堆硬件却不能实现1+1=2的效果。AI训练中的并行计算就是...
  • 点击上方“Python高校”,关注文末干货立马到手量子位 报道对土豪来说最痛苦的是什么,就是有一大堆硬件却不能实现1+1=2的效果。AI训练中的并行计...
  • 从大数据角度给大家解释一下为什么大数据AI分析足彩扯淡的:如果相同的维度,维度包括球员、场内、场外、教练组、基本面、伤病、阵容等不变,你让两个队踢100万场,那么我们确实可以回归出来一个胜平负的率,请...
  • 今天便是训练营的最后一天了,回想起来,这五天的时间真的过得飞快,恍如昨日一般。而我常因为Bug而无法自拔,在黑夜中摸索思绪,期待着下一秒便能寻找问题的回答。 最后的作业需要结合所学,写出一个自己的视觉...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 777
精华内容 310
关键字:

什么是ai训练