英特尔oneAPI 黑客松机器学习挑战——基于intel TensorFlow 的微笑识别


前言

在这里插入图片描述
Intel oneAPI 是一个跨行业、开放、基于标准的统一的编程模型,它为跨 CPU、GPU、FPGA、专用加速器的开发者提供统一的体验。
本次intel 黑客松大赛,需要选手使用Intel oneAPI 的Ai工具包去实现机器学习、计算机视觉或者是自由命题创意作品。
因为本人不是从事AI行业的。所以相关知识比较匮乏,计划通过本次大赛,借助一些开源的资料进行学习。实现自我提升。

本次主要使用了 Intel tensorflow +CNN + GENKI4K实现demo

Intel tensorflow 介绍

Intel TensorFlow是Intel公司开发的基于TensorFlow的深度学习框架,它结合了Intel处理器的优异性能和TensorFlow的强大功能,提供了高效的深度学习计算和优化工具。

Intel TensorFlow具有以下优点:

充分利用Intel处理器的优异性能,提高了深度学习计算的速度和效率。
提供了多种优化工具,如优化器、损失函数、激活函数等,提高了模型的训练速度和准确性。
支持多种数据格式和模型结构,方便用户进行深度学习应用开发。

一、卷积神经网络

在这里插入图片描述

CNN(卷积神经网络)是一种常用的深度学习算法,用于处理图像和语音等数据。它的主要优点是能够自动学习特征表示,而不是像传统算法一样需要手工设计特征。我们本次采用CNN实现笑脸监测。

CNN的主要步骤包括:

  1. 输入层:将数据输入到网络中。
  2. 卷积层:通过卷积操作来提取图像或语音等数据的特征。
  3. 池化层:对卷积层的输出进行降采样,减少数据量,提高计算效率。
  4. 全连接层:将所有特征图合并成一个大的特征向量。
  5. 输出层:根据任务不同,输出不同的结果,如分类或回归等。
    CNN的优点包括:
  • 能够自动学习特征表示,提高模型的泛化能力。
  • 对于图像和语音等数据,能够有效地处理高维数据。
  • 对于具有局部相关的数据,如图像,能够有效地利用局部信息来提高准确性。
  • 可以通过叠加多个卷积层和池化层来构建深度的神经网络,提高模型的性能。
    然而,CNN也存在一些缺点,如计算量大,对于大规模数据集训练时间较长,而且需要大量的标注数据来进行训练。

二、笑脸数据集(GENKI4K)训练

1.准备数据集

下载链接:
在这里插入图片描述
dataset文件夹里面就是我们需要的数据集。

2.引入库,并划分数据集

设置文件夹路径和文件路径。
通过列表目录获取文件夹中的文件列表,并打印文件路径。
根据指定的文件路径加载数据和标签。
对标签进行预处理,将其转换为独热编码形式。

import numpy as np
import matplotlib.pyplot as plt
import scipy.io
import random
import tensorflow as tf

dir_name = 'GENKI4K/Feature_Data'

files = os.listdir(dir_name)
for f in files:
    print (dir_name + os.sep + f)

file_path = dir_name + os.sep + files[10]

dic_mat = scipy.io.loadmat(file_path)
data_mat = dic_mat['Face_64']
file_path2 = dir_name + os.sep + files[15]

dic_label = scipy.io.loadmat(file_path2)
label_mat = dic_label['Label']
file_path3 = dir_name + os.sep+files[16]

使用随机抽样方法生成训练集的索引。
设置训练参数,包括学习率、批次大小、批次数量和训练轮数。
定义网络参数,包括输入维度、类别数和保留单元的概率。
定义输入占位符用于tf Graph。
定义卷积层函数和最大池化层函数。


label = label_mat.ravel()

label_y = np.zeros((4000, 2))

label_y[:, 0] = label
label_y[:, 1] = 1-label

T_ind=random.sample(range(0, 4000), 4000)

learning_rate = 0.001
batch_size = 40
batch_num=4000/batch_size
train_epoch=100

n_input = 4096 # data input (img shape: 64*64)
n_classes = 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值