计算机毕业设计

计算机毕业设计 · 圈子

8873 位酷友已加入

本圈子收集计算机类的毕业设计与毕业论文,本科、硕士、博士各阶段的都可以,上传时请尽量注明毕设的概述信息~加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~

关注推荐最新

热门标签

资源

【Demo】基于TensorFlow和CNN卷积神经网络实现人脸性别检测

本文主要是实现了根据人脸识别性别的卷积神经网络,并对卷积过程中的提取特征进行了可视化. 卷积神经网络 卷积神经网络最早是为了解决图像识别的问题,现在也用在时间序列数据和文本数据处理当中,卷积神经网络对于数据特征的提取不用额外进行,在对网络的训练的过程当中,网络会自动提取主要的特征. 卷积神经网络直接用原始图像的全部像素作为输入,但是内部为非全连接结构.因为图像数据在空间上是有组织结构的,每一个像素在空间上和周围的像素是有关系的,和相距很远的像素基本上是没什么联系的,每个神经元只需要接受局部的像素作为输入,再将局部信息汇总就能得到全局信息. 权值共享和池化两个操作使网络模型的参数大幅的减少,提高了模型的训练效率. 卷积神经网络主要特点 权值共享: 在卷积层中可以有多个卷积核,每个卷积核与原始图像进行卷积运算后会映射出一个新的2D图像,新图像的每个像素都来自同一个卷积核.这就是权值共享. 池化: 降采样,对卷积(滤波)后,经过激活函数处理后的图像,保留像素块中灰度值最高的像素点(保留最主要的特征),比如进行 2X2的最大池化,把一个2x2的像素块降为1x1的像素块。 卷积网络的训练数据(112×92×3图形) 从data目录读取数据,famale存放女性图片,male存放男性图片 重新打乱 训练集与测试集比例 8:2 训练参数 网络结构 辅助函数 Padding 训练 第一层卷积+池化 第二层卷积+池化 第三层卷积+池化 全连接第一层 全连接第二层 全连接输出层 损失函数 计算准确率&损失 启动会话开始训练 测试集验证 验证通过,保存模型 使用已训练好的模型参考:gender_model_use.py 结果: 迭代3000次,模型的准确率达到93% 训练交叉熵代价 训练的准确率 训练数据中的一个样本 第一层卷积提取的特征 2x2池化后特征 第二层卷积提取的特征 2x2池化后特征 第三层卷积提取的特征 2x2池化后特征 来源https://github.com/chenlinzhong/gender-recognition

资源

基于知识图谱的《红楼梦》人物关系可视化及问答系统

文件目录 app.py是整个系统的主入口 templates文件夹是HTML的页面 |-index.html 欢迎界面 |-search.html 搜索人物关系页面 |-all_relation.html 所有人物关系页面 |-KGQA.html 人物关系问答页面 static文件夹存放css和js,是页面的样式和效果的文件 raw_data文件夹是存在数据处理后的三元组文件 neo_db文件夹是知识图谱构建模块 |-config.py 配置参数 |-create_graph.py 创建知识图谱,图数据库的建立 |-query_graph.py 知识图谱的查询 KGQA文件夹是问答系统模块 |-ltp.py 分词、词性标注、命名实体识别 spider文件夹是爬虫模块 |- get_*.py 是之前爬取人物资料的代码,已经产生好images和json 可以不用再执行 |-show_profile.py 是调用人物资料和图谱展示在前端的代码 部署步骤: 0.安装所需的库 执行pip install -r requirement.txt 1.先下载好neo4j图数据库,并配好环境(注意neo4j需要jdk8)。修改neo_db目录下的配置文件config.py,设置图数据库的账号和密码。 2.切换到neo_db目录下,执行python create_graph.py 建立知识图谱 3.https://pyltp.readthedocs.io/zh_CN/latest/api.html#id2) 下载好ltp模型。 4.在KGQA目录下,修改ltp.py里的ltp模型文件的存放目录 5.运行python app.py,浏览器打开localhost:5000即可查看 系统流程图 系统展示 转载自:https://github.com/chizhu/KGQA_HLM

资源

【毕业设计】基于排序变换和混沌Logistic映射的图像置乱软件实现

研究目的 有序的像素组成了人们所看到的各种各样的图片。图像置乱算法的核心就是将原图像的像素搅乱,使得图像表达的意义失效,从而达到保护图像信息安全的目的。 研究方法 “基于排序变换和混沌Logistic映射的图像置乱算法”是众多图像置乱算法中的一种。该算法首先利用混沌Logistic映射产生混沌序列,然后通过混沌序列的排序变换来得到图像置换的地址码,最后根据地址码完成图像置乱。 本文主要介绍通过对“基于排序变换和混沌Logistic映射的图像置乱算法”的分析与研究,将原算法中混沌序列排序、生成地址映射数组两个串行执行的算法步骤,改进为混沌序列排序过程中同步生成地址映射数组,使这两个步骤并行执行,从而提高算法效率。并且使用Java语言实现优化后的算法,结合目前市面上较为流行的Android系统,开发出一个图像置乱的安卓软件。 研究结论 APP名称与图标 运行界面 访问用户相册 展示用户选择图片 密钥输入 密钥范围提示 输入密钥点击置乱 置乱后的图片 输入密钥点击解密 解密后的图片 点击噪声 解密后的图片 目录 摘 要 I ABSTRACT II 1 绪论 1 1.1 研究背景及意义 1 1.2 国内外研究现状 1 1.3 选题依据及研究内容 2 2 图像置乱 4 2.1图像置乱算法的由来 4 2.2基于像素位置变换的图像置乱算法 5 2.3常见的基于像素位置变换的图像置乱算法 5 2.3.1基于Arnold变换的图像置乱 5 2.3.2基于幻方变换的图像置乱 6 2.3.3基于Hilbert变换的图像置乱 8 2.3.4基于排序变换和混沌Logistic映射的图像置乱 9 3 基于排序变换和混沌Logistic映射的图像置乱算法的分析与优化 10 3.1算法思路 10 3.2算法复杂度分析 10 3.3算法优化 12 4 Java实现优化后的算法 15 4.1算法辅助类实现 15 4.2算法类实现 15 4.2.1生成混沌实值序列 16 4.2.2生成混沌序列的值与下标反向映射 17 4.2.3混沌序列排序同时生成置乱地址集合 17 4.2.4单行(列)置乱(解密) 18 4.2.5多行(列)置乱(解密) 20 4.2.6图像置乱(解密) 20 5 Android实现图像置乱软件 21 5.1 Android体系结构 21 5.2软件设计 22 5.2.1系统结构设计 23 5.2.2功能设计 23 5.3软件实现 24 5.3.1开发环境 24 5.3.2程序结构 24 5.3.3主要代码 25 5.4软件演示 28 6 工作总结与展望 32 6.1工作总结 32 6.2展望 33 参考文献 34 致 谢 35 转载自:https://github.com/goldsudo/PicEncryptApp

资源

【毕业设计】基于SSM的动态旅游网站

基于SSM的动态旅游网站 项目介绍 对比国内外的旅游网站,国内基本都是一些专业的大公司运作的消费者旅游网站,而非商业性质的旅游信息网站却很少。而本课题选择的这个动态网站建设是基于非商业用途的旅游信息交互式网站,网站的信息来源可以来源于管理者,也可以来源于用户。在用户的基数够大的情况下,会出现很多优质的旅游信息,为其他用户提供服务。 本系统采用三层结构,确定系统的Java作为编程语言,View层采用JSP,Spring 作为整个项目的整合核心管理所有 Bean 的生命周期行为,Dao层采用MyBatis,MySQL作为数据库,SpringMVC 的 Controller作为整个应用的控制器。整个系统要操作方便、易于维护、灵活使用。 本系统采用以上方法,基本实现了用户模块、景点模块、酒店模块、论坛模块、定制模块、留言回复功能,及相应模块的后台管理功能等。 线上地址 http://116.62.110.99:8083/ 技术 使用Java作为开发语言 后端 Spring SpringMVC MyBatis 前端 bootstrap jQuery 数据库 MySQL 5.5 本项目数据库 src/resources/trip_web_db.sql 工具 IDEA Maven Git dropzone 开发参考 Java单体视频合集 https://www.funtl.com/zh/guide/%E8%B5%B0%E5%90%91%E5%8D%95%E4%BD%93%E5%9C%B0%E7%8B%B1.html#%E8%A7%86%E9%A2%91%E5%90%88%E9%9B%86 Dropzone https://www.dropzonejs.com/ BootStrap https://layoutit.com/build 来源https://github.com/niziming/tripweb

资源

【Demo】Python中基于Tensorflow实现人脸识别

【Demo】Python中基于Tensorflow实现人脸识别 安装 要求 Python3 (3.5 ++ is recommended) 依赖 opencv3 numpy tensorflow ( 1.1.0-rc or 1.2.0 is recommended ) 实现 为了获得最佳准确性,请在输入新主题时尝试模仿下图中所做的操作: Flags: --mode“ input” 将新用户添加到数据集中 使用的模型的信阿息: 面部识别架构:Facenet Inception Resnet V1 Davidsandberg repo中提供了预训练的模型 有关该模型的更多信息:https://arxiv.org/abs/1602.07261 人脸检测方法:MTCNN 有关MTCNN人脸检测的更多信息:https://kpzhang93.github.io/MTCNN_face_detection_alignment/ 这两个模型同时运行 框架和库: Tensorflow:Google深度学习框架 OpenCV:图像处理(VideoCapture,调整大小,..) 改进建议 为了使此repo尽可能简单,我可能会在单独的repo中使用“插件”: 鉴于Facenet模型准确性的限制,你可以通过多种方法来提高实际应用中的准确性。 我的建议之一是为屏幕上检测到的每个面部创建一个跟踪器,然后实时对每个面部进行识别。 然后,在经过一定数量的帧(3到10帧,取决于你的机器速度)之后,确定每个跟踪器中的人。 继续做同样的事情,直到跟踪器消失或失去跟踪。 结果可能如下: 这肯定会提高你的程序能力,因为经过一定数量的帧后,结果很可能会倾向于图片中的正确对象,而不是像通常那样立即决定在1帧后立即做出选择。 这种方法的一个好处是,随着时间的推移,随着置信点的增加,人在摄像机前停留的时间越长,结果就越准确和可信。 另外,你可以通过多线程或处理技巧来提高性能。 演示: 点击图片获得完整现场演示视频: 来源https://github.com/vudung45/FaceRec

资源

【毕业设计】基于深度学习的阿兹海默症早期诊断辅助系统设计与实现

基于深度学习的阿兹海默症早期诊断辅助系统设计与实现 系统启动说明 1,打开Pycharm,导入该项目,并安装Tensorflow、keras、Flask等需要的包(命令行安装); 2,运行ADMS项目下的app.py文件,运行成功后,会出现一个URL,点击或复制到浏览器中打开,并可自动跳转到系统登录首页。 3,ADMS/app文件夹下: create_db.py:增删改查表命令 models.py:创建数据库表项 views.py:在该项目中暂时没有用 ExpertPush.py:导入专家用户信息 4,ADMS/Model文件夹: 放置的是训练好的模型,需要进行联合预测的两种模型 5,ADMS/Pred文件夹: HipvoluSum.py:获得预测得到的标签文件中的海马体体积 ImagCrop..py:对用户输入的图像进行分割 SinglePrediction.py:对单张图片通过加载模型进行预测,并得到预测标签文件 6,ADMS/static文件夹: 放置的是Web系统所需要的css、js以及用户上传图像、预测图像以及上传的诊断结果保存目录 7,ADMS/templates文件夹: 放置的是Web系统的前端HTML页面 本系统使用说明: 普通用户 1,注册功能:普通用户初次访问该系统,需要首先选择角色为普通用户,然后选择下方的注册,跳转到注册页面,输入不重复的用户ID、密码、姓名、性别、出生日期、联系电话,之后点击注册按钮,系统首先会判断该用户ID是否已经被注册,其次会再次判断用户输入的注册信息的规范性,当所有信息都满足要求后,用户便可以成功注册。 2,登录功能:用户成功注册后,将跳转到注册成功页面,此时用户可点击登录,跳转到登录页面,在登录页面,用户输入注册时的用户ID,用户密码,系统会自动进行验证,当用户ID和密码都正确时,登录成功,将自动跳转到对应用户的首页,首页将自动展示该用户可在本系统中执行的功能以及操作。 3,上传MRI影像功能:用户选择需要上传的MRI影像,点击上传,系统读取成功后,系统将获取该MRI影像的名称,该名称将作为后续诊断的唯一标志,此时用户选择点击提交,将该MRI影像信息提交到系统数据库中进行保存。 4,诊断申请功能:当用户成功上传自己需要诊断(在系统中将作为最新的数据返回到诊断申请页面)MRI影像后,用户方可提出诊断申请。当该MRI影像已经成功提交诊断申请或者诊断申请还未结束时,是不能重复提交该MRI影像的诊断申请。 5,诊断结果查看功能:当诊断完毕后,普通用户便可在诊断反馈页面查看自己的诊断结果以及专家给出的诊断意见。 6,历史对比信息查看功能:当用户在本系统中有诊断信息后,系统将记录该用户的诊断信息,当用户有多次诊断记录后,系统将生成历史诊断对比信息,并以折线图、柱状图等形式表示,供用户查看。 7,个人信息查看及修改功能:普通用户可查看个人的姓名、性别等个人信息(但用户ID不能被修改,因为有唯一标识),若发现自己的信息有误或需要更新个人信息,可直接修改并提交,便可成功修改。 8,联系我们功能:用户有任何与系统相关方面的疑问,都可以选择联系我们页面中的联系方式,联系开发作者。 专家用户 1,登录功能:专家用户登录时首先选中角色为专家用户,然后输入用户ID,用户密码(这里我们设置的为与医院进行合作,以医生的工号为用户ID,这样就不会发生重复了,用户密码为设置的初始密码),系统会自动进行验证,当用户ID和密码都正确时,登录成功,将自动跳转到对应用户的首页,首页将自动展示该用户可在本系统中执行的功能以及操作。 2,诊断修正功能:当管理员批准诊断申请并进行预测后,专家用户便可对该用户的MRI影像进行诊断修正以及上传诊断结果等功能。专家用户首先批准诊断后,可下载预测文件,并通过专业工具进行诊断修正。 3,上传诊断结果功能:当专家用户完成诊断修正后,方可上传诊断结果,此时一定不能修改下载的预测文件的名称,因为这里预测文件名称在系统中具有唯一标识作用,一个MRI拥有一个唯一的名称。专家同时给出诊断意见,供用户参考。 4,入职申请功能:专家用户若想长期为本系统服务,便可申请入职本系统,进行有偿诊断。专家用户在入职申请页面,选择入职年薪,专家身份以及填写专家履历后,便可提出入职申请,并等待批准。当专家成功入职后,将获得个人成就栏目,该栏目包括专家身份、专家等级、个人积分、诊断次数,专家排名等指标,将作为该用户薪资的依据。 5,个人信息查看及修改功能:专家用户可查看个人的姓名、性别等个人信息(但用户ID不能被修改,因为有唯一标识),若发现自己的信息有误或需要更新个人信息,可直接修改并提交,便可成功修改。 6,联系我们功能:用户有任何与系统相关方面的疑问,都可以选择联系我们页面中的联系方式,联系开发作者。 管理员 1,登录功能:管理员登录时首先选中角色为管理员,然后输入用户ID,用户密码(这里管理员用户ID和密码由系统开发人员在开发时就进行设定),系统会自动进行验证,当用户ID和密码都正确时,登录成功,将自动跳转到对应用户的首页,首页将自动展示该用户可在本系统中执行的功能以及操作。 2,诊断批准功能:当普通用户提出诊断申请后,管理员可进行诊断批准,并进行预测,预测成功,将预测信息保存到数据库中,,此时专家用户便可进行诊断修正以及上传诊断结果。 3,入职批准功能:当专家用户提出入职申请后,管理员可查看专家入职申请信息以及个人履历,并进行入职批准,批准成功后,专家用户便可正式入职。 4,用户管理功能:管理员可查看普通用户的信息、专家用户的信息,并导入专家用户信息。 5,个人信息查看及修改功能:管理员可查看个人的姓名、性别等个人信息(但用户ID不能被修改,因为有唯一标识),若发现自己的信息有误或需要更新个人信息,可直接修改并提交,便可成功修改。 6,联系我们功能:用户有任何与系统相关方面的疑问,都可以选择联系我们页面中的联系方式,联系开发作者。 via:https://github.com/Xminghua/AD_Prediction

资源

【Demo】基于BERT+GRU+ATT模型的人物关系抽取

数据集 运行该项目的模型训练和模型预测脚本需要准备BERT中文版的模型数据,下载网址为:https://github.com/google-research/bert/blob/master/multilingual.md 。 利用笔者自己收集的3881个样本,对人物关系抽取进行尝试。人物关系共分为14类,如下: 人物关系类别频数分布条形图如下: 模型结构 BERT + 双向GRU + Attention + FC 模型训练效果 在测试集上的每一类的classification_report如下: 利用Chinese_wwm_ext + 双向GRU + Attention + FC模型,效果如下: 在测试集上的每一类的classification_report如下: 模型预测 参考文章 https://www.cnblogs.com/jclian91/p/12328570.html 来源https://github.com/percent4/people_relation_extract

资源

【毕业设计】基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别

基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别 简介 基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别 文本检测:CTPN 文本识别:DenseNet + CTC 环境部署 注:CPU环境执行前需注释掉for gpu部分,并解开for cpu部分的注释 Demo 将测试图片放入test_images目录,检测结果会保存到test_result中 模型训练 CTPN训练 详见ctpn/README.md DenseNet + CTC训练 1. 数据准备 数据集:https://pan.baidu.com/s/1QkI7kjah8SPHwOQ40rS1Pw (密码:lu7m) 共约364万张图片,按照99:1划分成训练集和验证集 数据利用中文语料库(新闻 + 文言文),通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成 包含汉字、英文字母、数字和标点共5990个字符 每个样本固定10个字符,字符随机截取自语料库中的句子 图片分辨率统一为280x32 图片解压后放置到train/images目录下,描述文件放到train目录下 2. 训练 3. 结果 val acc predict model 0.983 8ms 18.9MB GPU: GTX TITAN X Keras Backend: Tensorflow 4. 生成自己的样本 可参考SynthText_Chinese_version,TextRecognitionDataGenerator和text_renderer 效果展示 参考 [1] https://github.com/eragonruan/text-detection-ctpn [2] https://github.com/senlinuc/caffe_ocr [3] https://github.com/chineseocr/chinese-ocr [4] https://github.com/xiaomaxiao/keras_ocr 来源https://github.com/YCG09/chinese_ocr

资源

【毕业设计】蓝牙灯:支持一键设置情景模式、无极调光调色

蓝牙灯:支持一键设置情景模式、无极调光调色 产品概述 ● 功能简介 界面使用最广泛的四页面设计,分别为:主页、情景、设备、发现。 主页是核心功能,实现一键连接蓝牙灯、自由调节颜色、亮度、设置定时关灯等功能。 情景页是保存用户设置的情景模式,可以根据使用场景不同快速切换至对应的工作模式。 设备页可以管理多台蓝牙灯。 发现页提供一些智能家居相关资讯。 ● 适用平台 iOS 8 ~10.2 ATTitleBar 支持横向滑动切换tab,并具有点击涟漪效果。详见@ATKit。 titlebar是在app中广泛应用的一种tab设计。我写的这个小框架模仿Google的Material Design设计,涟漪效果代码由@MaterialControls框架改写。 页面较多时采用类似tableview的懒加载模式,只加载需要显示的几页,减少内存占用,提高流畅度。 ReactiveCocoa 本项目大量使用了@ReactiveCocoa框架进行响应式编程,大幅简化代码、提高可读性。 RAC的订阅机制使得一对多传值有了新的选择,如蓝牙中心设备。 RAC的信号监听机制使得我更容易根据需要定制个性化控件。如带翻转、旋转效果的tabbar、带缩放和回弹效果的slider等,使app的界面栩栩如生。 CBCentralManager CBCentralManager是蓝牙类app的核心,本项目在编写这部分代码时使用了链式语法进行封装,外界调用起来十分方便。 ATCarouselView 轮播图也是在app中广泛存在的一种自定义控件,我将这部分代码封装至@ATKit中,以Pods导入方式使用,便于维护和扩展,同时也使得本项目代码更加简洁。 部分app的轮播图可以根据下方列表的滑动而改变高度或者添加蒙版效果,我目前实现了改变高度的功能。 此外,一些细节问题 启动动画与侧滑界面 本项目并没有开启侧滑界面,但是在编写的时候留有接口。 启动图片与主窗体下层的一个视图的背景图片相同,在启动的时候主窗体在屏幕右侧,以动画形式向左覆盖住图片。 UINavigationBar和UITabBar的分割线 如果需要自定义这两个bar,一般会把系统自带的一条分割线移除掉。 在模拟器中运行程序,观察层级结构,在执行Layout的时候移除掉对应层级的一个UIImageView。 UITabBar中间自定义按钮 在系统TabBar执行Layout的时候,重新排布原来的四个按钮,调整其大小和位置,然后新建一个按钮放在中间。 Smart Lamp 要点概述 核心:中心设备(CBCentralManager)、外设(CBPeripheral)。 中心设备模型通过代理获取中心设备与周边设备之间的各种状态信息。 自定义了主页头视图支持滑动切换页面,并封装成工具类(详见GitHub)。 对第三方库进行了二次封装,减少内部代码对第三方库的依赖,便于后期维护。 中心设备模型对多个页面间的传值采用了Rac信号传值。 中心设备模型使用了链式语法封装,使用方便快捷。 封装了轮播图控件,并自适应header高度的变化。 分析问题 解决问题 蓝牙通信的流程? 中心设备设置代理、开启扫描、停止扫描、获取周边对象、获取服务、获取特征、发送数据、接收返回数据。 如何实现多连? 用数组存储多个设备及其特征,发送数据时分别向每个连接的设备发送数据,或单独向选中的设备发送数据。 蓝牙灯硬件响应的极限时间大概在20ms,如果手指滑动取色器太快导致蓝牙灯反应迟钝滞后,这个问题通过定时器来解决,定义一个flag,每隔50ms使其置为1,只有当flag为1的时候才可以发送数据,每次发送完数据使其置为0,这样就保证了发送数据的时间间隔不会小于50ms。 如何选择最合适的传值方式? 最常用的三种Block、代理、通知。通知的特点是一对多,而代理和block是一对一传值,代理可以批量传递更多的信息,注重过程信息的传递,但是单例不能使用代理。block写法简练,功能强大,可以封装一段代码传递。 开灯时瞬间变亮太刺眼如何进行体验优化? 创建一个定时器,每次开灯的时候设置亮度为0,每隔50ms左右调用一次增加一点亮度,直至亮度达到关灯前的状态。 关于丢包问题如何解决? 可以对每一包发送的数据添加到数组里,每次从中取出一包发送,一定时间内没有收到返回值就重发。 如何防止数据被拦截? 通常采取加密措施。拟定一份加密协议,对数据进行打乱、插值、重组等。 via:https://github.com/xaoxuu/SmartLamp

资源

【毕业设计】投标管理信息系统

研究目的 通过构建合理的信息平台并借用一定数据分析技术,实现信息的快速传递,数据的有效归纳及充分利用历史记录识别客户、激励员工、提升投标质量等,可以增强企业的投标履约能力,从而提升企业的竞争力和环境应变力,具有一定的现实意义。能够帮助企业有效管理从招投标准备到中标后合同履约管理的全过程。 研究方法 系统边界和模块关系 一级数据流程图 实体-关系模型 在系统设计部分,采用了实体-关系模型(E-R模型)来对整个系统的数据进行了建模。在概念模型的基础上进行了详细的数据库表的设计 为体现创新性,后面在系统功能上新增了一个标价预测,是用历史数据中同一种类机械的中标价格,基于多种时间序列模型来预测未来的中标价格。这个实际上是没有现实基础的,因为实际的中标价格还与原材料、供应商关系、客户关系、工人成本、客户细节需求等都有密切关系,仅依靠机型来划分价格进行预测是缺乏实际意义的。 系统实现 成了ECharts可是化工具,轻松地完成了网页端的很多可视化需求。 整个系统是基于Django框架实现的(简单实现,可以前台页面输入,然后在后台数据库里存数据,功能上实现简单处理数据后返回,没有部署服务器,本地版),也就是用Python来写的。 研究结论 目录 转载自:https://github.com/zhy1101/biddingMIS http://www.zhuhanyu1101.work/index.php/%E6%9C%AC%E7%A7%91-%C2%B7-%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1/

资源

【毕业设计】主动学习推荐系统的实现

主动学习推荐系统的实现 概述 数据集:Amazon商品数据集 编程环境:Python, Matlab, Markdown 1. 数据预处理 商品信息 提取数据集中的title和description信息 命令:python item_information.py [file1, ..., file3] 用户物品评分信息 提取用户-物品评分,划分train集和test集 将train集中的用户作为用户全集,以防止出现train集中有用户没有评分的情况 命令:python user_information.py [file1, ..., file7] 商品相似度生成 title: 分词 + LDA主题模型(topic number = 15) description: 分词 + LDA主题模型(topic number = 15) 未使用price(缺失值太多) 未使用category(同类商品) 命令:python item_similarity.py [topic number, file1, ..., file6] 商品description和title相似度权重生成 non linear regression Similarity(i1, i2) = weight1 * S_title(i1) + weight2 * S_description(i2) 命令: python similarity_parameters.py [file1, ..., file7] fitnlm(path, param1, param2) 用户相似度生成 评分相似度 命令:python user_similarity.py [file1, ..., file3] 用户聚类 用户聚类依靠用户相似度作为距离度量,使用K-medoids作为聚类算法 问题主要存在于:由于评分稀疏,很多用户之间距离为0 命令:python user_clustering.py input_file number_of_clusters output_file 建树前的准备工作 生成用户聚类对任一物品的平均评分,便于计算时直接调用 利用非线性回归拟合的参数生成相似度矩阵 命令:python buildtree_preparation.py input_file init_ptitle init_pdescrip output_file 2. 建树及预测 树的生成: 三叉树,对应不喜欢、一般般喜欢和喜欢三个节点 生成的节点信息用self.tree和self.node_interval两个变量保存 构建预测模型: 利用Spark的mllib包实现ALS Matrix Factorization 生成伪物品(每个节点)和用户对应的latent vector(对每一层都计算) 预测评分: 对每一个test商品,从树的根节点开始向下走,利用目标叶子节点的latent vector作为它的特征向量 利用特征向量和所有物品的特征向量的点积预测评分,计算RMSE(对每一层都计算) 命令:python build_tree.py [input_file1, ..., input_file5] desired_depth 3. 运行 利用Python脚本运行上述所有步骤:python script.py 代码开头数据集名称(dataset)需相应更改 4. 对比实验 FDT (Factorized Deicision Tree) python factorized_decision_tree.py dataset depth (dataset是数据集的名字,depth决定了树的高度) 输入: IU 的矩阵 => new-user problem 输入: UI 的矩阵 => new-item problem CAL (Content-based Active Learning) python content_based_active_learning.py dataset K (dataset是数据集的名字,K决定了选择TopK的用户进行query) CBCF (Content-based Collaborative Filtering) 5. 当前问题 1.对Amazon数据集来说树的第一层预测效果最好,分析原因可能如下: 数据集过于稀疏,导致每一用户基本只有一个评分,第一层作为伪物品作矩阵分解时评分满,效果好,越往下效果越差。 点的划分过于不均匀,使得伪物品选择不优秀。 解决方法: 使用平均划分法划分每一个节点 使用相似度拟合评分作为MF的输入,而非平均评分 2.物品个数超过30万的Automotive集合上计算item similarity时出现Memory Error 解决方法:选择评分个数大于5个的物品和用户 via:https://github.com/clamli/Dissertation

资源

【毕业设计】基于深度学习的视觉问答

研究目的 对于视觉问答(VQA)的研究具有深刻的学术意义和广阔的应用前景。目前,视觉问答模型性能提升的重点在于图像特征的提取,文本特征的提取,attention权重的计算和图像特征与文本特征融合的方式这4个方面。本文主要针对attention权重的计算和图像特征与文本特征融合这两个方面,以及其他细节方面的地方相对于前人的模型做出了改进。本文的主要工作在于本文使用open-ended模式,答案的准确率采用分数累积,而不是一般的多项选择。本文采用CSF模块(包括CSF_A和CSF_B)不仅对spatial-wise进行了权重计算,还对channel-wise进行了权重计算。本文采用MFB模块和ResNet152 FC层之前的tensor来结合LSTM的输出来计算每个区域的权重,而不是直接把image feature和question feature结合本文采用SigMoid来计算最后的分布,而不是一般的softmax(实验部分会有对比两者的差异)。 研究方法 数据集&数据预处理 本文使用VQA2.0数据集来训练和测试模型 VQA2.0的图像集由来自MS-COCO数据集的约200,000幅图像组成,每个图像3个问题,每个问题10个答案 使用开放式(OE)模式来回答问题,开放式模式要求模型更具图片和问题直接提供答案,而不是从十几个选项中选出对的那个,但是由于开放式(OE)的答案非常难以评估,答案存在歧义性和同义性问题,所以本文首先对答案和问题进行了预处理,使得问题和答案更易于训练和评估。 问题预处理:替换、分词、截断&补全(14 word)、index 根据每个问题中对应答案出现的次数来计算每个答案的分数,然后将每个问题的答案形成一个一维的分布(候选答案总数为3097) 总体模型 MFH模块 MFB模块用到了bilinear pooling技术,但和一般的bilinear pooling不同,MFB用Factorized Bilinear Pooling来减少参数个数和计算复杂度,从而来大大降低内存消耗量和运行时间,在结合𝑎_𝑖𝑚𝑔和𝑏_𝑞𝑢𝑒之后我得到了最终的融合向量c=SumPooling(𝑈 ̃^𝑇 𝑎_𝑖𝑚𝑔 ° 𝑉 ̃^𝑇 𝑏_𝑞𝑢𝑒, 𝑘),其中k为人为定义的超参,k越大就是复杂度越高但表示能力越强 CSF子模块 文本创建了两种CSF模块,分别为CSF_A和CSF_B,两者差别仅在于计算attention权重的函数不同,其流程都与上图一样,本文进行了相关对照试验并对使用不同模块的总体模型的准确率进行了比较,最后采取了CSF_A模块 研究结论 在经过大量试验之后,本文得到了较好的结果58.34%,虽然相对于目前世界上对于视觉问答的研究的最高的准确率62%还有较大的差距(这里不包括ensemble模型等用来刷分的技巧),但是任然相对于Baseline的53.71%有了较大的提高 转载自:https://github.com/kyocen/Graduation-Design-VQA-based-on-deep-learning

  • 1
  • 10
  • 11
  • 12
  • 20
前往