- 博客(44)
- 收藏
- 关注
原创 【μc/OS内核分析】 任务管理
μc/OS 任务管理2.1 任务管理数据结构任务控制块、任务空闲链表和任务就绪链表、任务优先级指针表、任务堆栈等。2.1.1 任务控制块OSTCB结构体包含了任务控制信息。typedef struct os_tcb { OS_STK *OSTCBStkPtr; /* Pointer to current top of stack ...
2019-04-22 16:23:41 586
原创 Linux内核Power_Management之suspend to disk(STD)详解(二)
1. STD机制Suspend to Disk也常被叫做Hibernation(休眠),为了达到省电与快速开机的trade off,Hibernation经常被应用到Laptop和移动终端上。其常用的实现方法为SWSUSP(swap suspend)。swsusp是一种STD(Suspend to Disk)/STF(Suspend to Flash)的实现方法,其目的是系统断电之后再次开启时...
2018-12-28 10:47:47 3037
原创 LXD共享方案(续)
LXD共享方案(续)前言前面介绍了LXD,并详细描述了使用LXD来搭建实验室GPU共享服务器方案,经过测试该方案完全可行。但是在最近的使用中坑了一把,lxc容器挂了,所有的容器都启动不起来,于是开始了各种找问题。问题发现因为启动失败log的信息太少,而网上关于LXD的解决方案现在还是比较少的,google不到相关的解答,于是开始试错。经过各种配置测试:取消GPU挂载使用基础镜像启动...
2018-11-28 20:51:15 1587 1
原创 搭建 Kubernetes 集群并部署 Dashboard
docker安装docker 安装步骤:配置 docker-ce 的镜像源sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-commoncurl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gp...
2018-11-28 17:20:54 487
原创 嵌入式BootLoader分析:U-Boot简介(二)
ARM处理器的芯片商很多,所以每种芯片的开发板都有自己相应的BootLoader。其中,U-Boot(Universal BootLoader)称为通用BootLoader,是目前开发嵌入式系统引导代码使用最广泛的,如今已成为ARM平台事实上额标准BootLoader。U-Boot是德国DENX小组开发的用于多种嵌入式CPU的BootLoader程序,可以运行在基于PowerPC、ARM、MIP...
2018-11-19 10:29:09 455 1
原创 嵌入式BootLoader分析:简介(一)
概述嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(bootloader),Linux 内核,文件系统,应用程序。BootLoader是与系统硬件环境高度相关的初始化软件,它负责初始化硬件和引导操作系统的双重责任。其广泛应用于带有操作系统的手持终端设备、智能家电以及机顶盒等嵌入式设备。 它是系统启动或复位以后执行的第一段代码,类比于PC中的BIOS,主要用来初始化处理器及外...
2018-11-15 20:54:16 1019
原创 sock
一。套接字概念:套接字是一种进程间通信的方法,不同于其他进程间通信的方式(e.g.,管道、共享内存、信号量、消息队列),套接字可以在不同计算机的进程之间通信,明确区分C/S。套接字接口(socket interface)由伯克利版本UNIX引入,可以认为是对管道概念的扩展。套接字工作流程(服务器端)首先,服务器应用程序通过socket系统调用创建一个套接字,它是系统分配给该服务器进...
2018-11-12 21:42:23 1458
原创 程序的链接
链接的过程链接的概念符号解析有哪些符号如何解释这些符号链接的概念链接器使得分离编译成为可能,开发人员各自开发自己负责的部分,然后将自己负责的源码单独编译成可重定位目标文件,再通过链接器将各自编译的可重定位目标文件链接到一起,成为一个可执行目标文件。这样,程序员A在自己模块中定义的变量、函数可能被其他程序员在自己的模块中引用,程序员A也可能引用其他程序员定义的变量或者函数。那么链接器就需要将在...
2018-11-09 20:32:16 723
原创 software_architecture
软件体系架构1.分层架构1.1 简介传统分层架构:模块缺乏明确的规则、职责和同其他模块之间的关联;应用程序缺乏合理的架构会导致程序过度耦合、容易被破坏、难以应对变化、没有清晰的版本和方向性。 架构模式帮助你定义应用程序的基本特征和行为。比如:一些架构模式会让程序自然而然的朝着具有良好伸缩性的方向发展,或者高度灵活的方向发展。1.2模式分析分层架构模式里的组件被分成几个平行的层次,每一层...
2018-11-07 20:26:33 296
原创 目标识别相关论文整理
目标识别(一)最近因为项目原因,需要了解和使用目标识别相关的只是和工具,所以将最近几年的深度学习一些比较流行的目标识别的论文统计了下,希望可以方便大家。相关论文整理:R-CNNRich feature hierarchies for accurate object detection and semantic segmentationarxiv: http://arxiv.org/a...
2018-11-05 21:53:14 561
原创 实验室GPU服务器共享方案 LXD
LXD安装需求实验室有两台配置不高,显卡还算可以的服务器,用来作为深度学习的实践和学习。但是实验室人多,隔离环境必不可少,但是服务器cpu和内存并不高,跑虚拟机太重太浪费,跑docker又不合适。于是有了LXD的方案。需求列表:不同用户之间不能相互影响用户要能方便地访问自己的“虚拟机”用户要有足够大的权限,能自由地安装程序,能自由地访问网络用户不被允许直接操作宿主机用户要能够使用...
2018-11-04 21:37:37 4979 4
原创 kuberbetes安装笔记
kubernetes 安装笔记k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便。随着docker的大热,k8s当然也是随之风生水起,尤其是它有一个好爹google。安装软件其实第一步还是去找官网,官网文档走不通再去找相关解决办法。其实安装过程其实官网说的很明白,遇到的主要问题都是网络问题,需要各种找办...
2018-11-04 21:36:41 287
原创 CAPES与AI特征浅谈
CAPES与AI特征浅谈一、系统构成图1系统分为两个模块,CAPES调节系统与目标系统。在CAPES调节系统端,分为三个部分,控制节点、Replay DB和控制模型。控制节点可分为Interface Daemon、DRL Engine以及Action checker。在目标系统端,使用两个agent: monitor agent与control agent。系统运行流程如...
2018-10-31 13:15:27 562
原创 Linux内核Power_Management之suspend详解(一)
1.Linux内核的suspend状态Linux内核支持多种类型睡眠状态,目前存在四种模式:suspend to idle(freeze)、power-on standby(standb)、suspend to ram(memory;STR)和suspend to disk(hibernate),分别对应ACPI状态的S0、S1、S3和S4状态。State in Linux Labe...
2018-10-27 19:11:41 5269
原创 nvdla_investigate
1.NVDLA简介英伟达深度学习加速器(NVDLA)是一种免费开放式架构,NVDLA具有可扩展性,高度可配置性,旨在简化集成和可移植性。NVDLA软件生态系统包括一个设备上的软件堆栈(开源版本的一部分),一个完整的培训基础架构,用于构建包含深度学习的新模型,以及将现有模型转换为可在设备上使用的形式的解析器软件。可以提供其自己的硬件平台以及软件内核:硬件架构:基于Xavier–全球首款专为汽车...
2018-10-23 16:35:07 5168
原创 tensorflow-GPU docker运行
1.tensorflow安装版本介绍在服务器上部署的时候,可能宿主机直接用apt install安装的CUDA9.1(ubuntu18.04支持apt install 安装CUDA9.1),此时用pip install tensorflow–gpu 安装的 1.11.0 不能支持CUDA9.1。所以此时可以采用两种方案,一种是直接安装编译好的 tensorflow-gpu。由于已经在CUDA9...
2018-10-13 15:16:34 2131
原创 使用Tensorflow Object Detection的faster--rcnn模型检测自己的数据集
目前在使用最多人数,范围最广的深度学习模型中google开发的TensorFlow框架可以算上其中的姣姣者。本文章将使用TensorFlow开源框架来实现Faster Rcnn的物体检测。源码下载地址:https://github.com/tensorflow/models/tree/master/research/object_detection一.源码框架简介:1.object dete...
2018-10-10 11:20:17 6878
原创 深度学习数据增强
进行数据增强的必要性通过增强数据集,可以防止神经网络学习到不相关的模式,根本上提升整体性能。某种程度上,深度学习的训练过程,就是生成一个从输入到输出的映射关系。而深度学习生成的这种映射,会含有大量的参数,当前主流的模型含有几十万到几百万个参数,而训练过程,就是不断修正这些参数的过程。在这个过程中,如果数据集的多样性不够,模型会把一些不想关的特征标记为输入数据的特征。以图片识别举个简单的例子,...
2018-10-10 10:17:15 1272
原创 Docker 实现原理浅析(一)
Docker 的发展契机Docker 是容器技术的一种实现,主要解决了以下问题:为应用提供了一种类似沙盒的隔离运行环境总而言之,Linux上运行的容器,其实质是宿主机上的一个进程。只是,Linux Docker使用某些类似障眼法的技术,是的容器自己看到的内容中,自己的启动进程是唯一的系统进程。具体而言,使用Cgroups技术制造一种约束环境,使用Namespace技术修改进程试图。在之后...
2018-10-10 09:08:14 724
原创 CAPES:Unsupervised Storage Performance Tuning Using Neural Network-Based Deep Reinforcement Learning
最近看了一篇利用强化学习进行存储性能调优的论文,写一下读后感什么是参数调优针对某一设备上正在运行的某一工作负载,不断调整某些参数的值,使得设备可以达到最优的性能,参数调优不会改变硬件、源代码和应用程序。典型的参数一般有:I/O队列深度、RPC速率限制、线程数量和缓冲区大小等。传统的参数调优存在的问题传统的参数调优是一份十分具有挑战性的工作,而且成本较高:每个系统、每个工作负载之间是...
2018-10-09 22:43:10 345
转载 RAID技术浅识
RAID技术浅识最近在进行服务器相关的环境的搭建和维护,接触到了RAID,做了点了解,于是写一点相关知识。RAID简介RAID即磁盘阵列,英文全称为 Redundant Arrays of Independent Drives 独立磁盘冗余阵列,顾名思义,就是使用独立磁盘构成具有冗余能力的磁盘阵列。它是由很多的磁盘组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘...
2018-10-09 21:40:52 333
原创 DRAM基本知识及操作系统内存管理策略
DRAM基本知识及操作系统内存管理策略一、DRAM工作原理概述二、内存分区1.固定分区(Equal-size partitions)2.动态分区三、虚拟内存置换策略一、DRAM工作原理概述DRAM(Dynamic Random Access Memory)即动态随机存储器,由许多重复的“单元”——cell组成,每一个cell由一个电容和一个晶体管(一般是N沟道MOSFET)构成,电容可储存1b...
2018-10-09 20:43:57 4684
原创 DVFS及多核处理器功耗优化技术详解
概述 降低嵌入式系统功耗有多种方法,其中动态电源管理(DPM)和动态电压频率调整技术(DVFS)是降低系统功耗的两种关键技术。其中动态电源管理主要依据设备工作负载的变化切换器工作状态以达到系统功耗最小化。本篇博客则主要从DVFS技术做详细的介绍。DVFS(Dynamic Voltage and Frequency Scaling)动态电压频率调节本质上是一种低功耗技术,目的...
2018-10-09 20:25:04 11552
原创 数据库系统实现-辅助存储管理
数据库系统实现 - 辅助存储管理磁盘被划分为磁盘块 每一块的大小为4~64KB,整个块每从一个称为缓冲区的连续内存区域中移进移出。加速数据库操作的关键是安排好数据,使得当某一个磁盘块中有数据被访问时,大约在同时很可能有该块上的其他数据也需要被访问。典型的软件运行在虚拟存储器中,即一个32(64)位的地址空间。即在虚拟存储器中有2^32B。操作系统管理虚拟存储器,让它的一部分留在内存中,剩...
2018-10-09 19:32:53 588
原创 用nvidia-docker跑深度学习模型
用nvidia-docker跑深度学习模型##背景最近实验室要参加一个目标检测的比赛,这段时间一直在跑ssd模型,最开始根据作者给的文档成功编译后,可以在VOC数据集上进行训练。由于要用比赛官方的数据集,因此做了几天的数据集,然后拿自己的数据集训练的时候,出现了以下报错:Check failed: a <= b (0 vs. -1.192093-07)去网上搜了相关的解决方法,全都...
2018-10-03 21:56:07 11179 6
原创 关于数据集制作过程中对图片的一些操作
#给图片建立数据名称列表:ls > list.txt给当目录下的图片在当前目录下一个名为list.txt的图片名称列表文本文件#在已建立图片名称列表文本文件的前提下,给图片增添类型号在图片所在的文件夹下打开终端,执行下列命令:sed -i “1,1000s/.*/& 1/” list.txt表示给存有1000张图片的图片列表添加图片类型号1(根据需要自行修改图片数量和...
2018-09-19 21:08:35 2453
原创 caffe-ssd编译以及训练自己的数据集
编译caffe之前首先要配置好cuda8.0+cuDNN5.1+opencv3.x的环境注意:如果是cuda9.x的版本,要注意gcc编译器的版本问题。具体参照:cuda和gcc版本不兼容以及解决办法解决gcc与cuda版本不兼容问题编译caffe1.获取SSD代码。在终端打开想要安装ssd代码的目录,然后在终端下输入:git clone https://github.com/weiliu...
2018-09-19 14:54:35 2538
原创 python生成简单的验证码
python生成简单的验证码最近因为需要用深度学习做一些简单的验证码识别工作,网上爬取验证码的效率比较慢,于是决定采用自己写脚本生成验证码来使用。python版本: python3.6代码如下:#!/usr/bin/env python3# coding: utf-8import sysimport osimport randomimport shutilimport uu...
2018-09-19 13:38:42 1875
原创 Python读写XML文件
什么是XMLXML是可扩展标记语言(Extensible Markup Language)的缩写,其中标记是关键部分。用户可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息。标记语言从早起的私有公司和政府制定形式逐渐演变成标准通用标记语言(Standard Generalized Markup Language,SGML)、超文本标记语言(Hypertex...
2018-09-19 13:00:04 16424
原创 浅度理解caffe
浅度理解caffe一. caffe 简介caffe是一个开源的深度学习框架,可读性高,它默认实现了一些现有的通用的网络模型和优化方法,同时允许自由选择CPU或者GPU训练网络,不需要自己编写程序,只需要通过protobuf文件来配置网络以及其参数。相对于TenserFlow来说,caffe在基本功能具备的情况下,速度快,代码精简,层次分明,对于源码的学习和深度学习工作原理比较有利。二. ...
2018-09-19 11:59:42 277
原创 使用Docker 安装 Redmine
RoadDetector实验(运行在cpu上)实验目标检测图像中所有的目标物体,确定它们的类型、位置以及大小等项目的框架基于cafee深度学习框架和使用OpenCV的库实验过程opencv和cafe的安装与编译(搭建好环境)具体教程参见《opencv和cafe的编译安装》修改CMakeLists.txt文件中的参数首先需要修改项目目录下的CMakeLists.txt文件,...
2018-09-19 11:12:02 2368
原创 OpenCV和cafee的编译安装
OpenCV和cafee的编译安装初识OpenCV为OpenCV构建编译环境OpenCV是一个开源的跨平台计算机识别库,可以应用在物体识别、人脸识别、动作识别、图像分割等等方面的领域。在使用OpenCV做项目之前,我们首先需要配置环境,安装一些所需的包。可以在OpenCV的官网上查看安装指导,点击这里打开官方网站。下面是所需要的包(基于Linux系统):GCC 4.4.x or late...
2018-09-19 11:10:45 570
原创 Mean Average Precision(MAP):平均精度均值
1.MAP可以由它的三个部分来理解:P,AP,MAPP(Precision)精度,正确率。在信息检索领域用的比较多,和正确率一块出现的是召回率Recall。对于一个查询,返回了一系列的文档,正确率指的是返回的结果中相关的文档占的比例,定义为:precision=返回结果中相关文档的数目/返回结果的数目;而召回率则是返回结果中相关文档占所有相关文档的比例,定义为:Recall=返回结果中相关文...
2018-09-17 20:47:00 14892 1
翻译 PCI-E技术简介
电脑主板上的扩展插槽曾经多种多样,例如曾经非常流行的组合就是PCI插槽搭配AGP插槽,其中AGP插槽主要用在显卡上,而PCI插槽的用途则更广一些,不仅有用在显卡上,还能用于扩展其它设备,如网卡、声卡、调制解调器等等。然而在一个速率更高、扩展性更强的插槽出现之后,它们就迅速退出舞台,被后者彻底取代。而这种可以在短时间内淘汰前辈的新型插槽,就是现在显卡以及各种扩展卡所用的主流插槽,即PC...
2018-09-17 10:53:04 10738
原创 gitlab服务器搭建
给图片建立名称列表:在图片所在的文件夹打开终端,然后输入下列指令: ls > list.txt 即建立图片的名称列表list.txt 在图片名称列表list.txt中批量添加类型号:sed -i “1,1000s/.*/& 1/” list.txt #在存储图片的目录下的终端中执行该命令,为该文件下的1000
2018-09-14 22:05:54 223
原创 CMake 实践指南
CMake一、单个源文件的编译//main.c#incldue<stdio.h>int main(){ printf("Hello World!/n"); return 0;}在main.c相同目录下再编写一个CMakeLists.txt文件,内容如下:project(HELLO)set(SRC_LIST main.c)add_exe...
2018-09-05 08:49:43 194
原创 Caffe 实验
Caffe实验实验一 RoadDetector一、实验步骤安装CMake安装OpenCV安装Caffe 以上三步安装平台均在Linux操作系统下 4. 二、实验内容1、安装实验环境安装CMake: CMake官网下载链接将下载的安装包放到/usr路径下,并且解压, 解压后在Terminal输入$ cmake -versio...
2018-09-05 08:48:17 154
原创 编译安装 caffe ssd
编译安装 caffe ssdCaffe 简介Caffe是一个深度学习框架,该框架主要考虑到表达、速度和模块性。它是由伯克利人工智能研究所( BAIR )和社区贡献者开发的。贾扬清在加州大学伯克利分校获得博士学位期间创建了这个项目。caffe根据BSD 2条款许可证发布。准备Caffe编译环境可以从caffe官网查看编译依赖包的安装指导,点击这里打开官方网站,根据安装指导,U...
2018-09-04 15:50:09 464
原创 Ubuntu 安装 Docker
Ubuntu 编译安装 OpenCVOpenCV简介OpenCV (Open Source Computer Vision Library, 点击此处打开官方网站)是一个跨平台的计算机视觉库。OpenCV由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域免费试用。OpenCV可用于开发实施的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP...
2018-09-04 15:48:51 177
转载 faster rcnn文件读取
py-faster-rcnn文件读取环境:caffe,python版本;[代码链接]<https://github.com/rbgirshick/py-faster-rcnn>本篇文章主要介绍rbg大神的faster-rcnn模型进行训练时数据库读取与生成部分。faster-rcnn代码的主要目录结构如下:├── caffe-fast-rcnn 本次项目所用...
2018-09-04 13:44:15 598
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人