docker的安装使用,及打包深度学习环境【很详细】

Docker打包深度学习项目 无 阅读详情

1. docker安装

ubuntu中安装docker

**1.卸载旧版本 **

 sudo apt-get remove docker docker-engine docker.io containerd runc

2. 安装依赖

sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

3. 添加docker官方gpg密钥,这里改成中科大镜像的

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4. 设置稳定版本库,也换成中科大的

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. 安装docker,默认是安装最新版

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

​ 你可以使用如下命令查看当前存储库中可用的版本,自己指定版本号
​ 查看命令为:

apt-cache madison docker-ce

安装,<VERSION_STRING>替换成你的版本号

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io docker-compose-plugin

6. 测试是否安装成功

 sudo docker run hello-world

如下,则成功

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:10d7d58d5ebd2a652f4d93fdd86da8f265f5318c6a73cc5b6a9798ff6d2b2e67
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

7. 卸载

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

常用docker命令

docker ps 查看当前运行中的容器
docker images 查看镜像列表
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
docker rmi image-id 删除指定 id 的镜像
docker volume ls 查看 volume 列表
docker network ls 查看网络列表

2. 编写dockerfile制作深度学习镜像

dockerfile指令

FROM   		#基础镜像  一切从这里开始构建
MAINTAINER  #镜像是谁写的  名字+邮箱
RUN  		#镜像构建的时候需要运行的命令
ADD			#步骤,tomcat镜像,加一个tomcat压缩包!添加内容
WORKDIR 	#镜像的工作目录
VOLUME		#挂载的目录
EXPOSE		#指定暴露端口
CMD			#指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT	#指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD		#当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令
COPY		#类似ADD,将我们的文件拷贝到镜像中
ENV			#构建的时候设置环境变量

更多参考 dockerfile文档 菜鸟dockerfile文档

dockerfile构建镜像的时候是运行一行命令构建一个,意思就是每行命令运行结束后,运行之后的命令都是一个新的环境

例如 RUN cd /opt/conda 后再运行其他命令基于的目录仍是 根目录,而不是/opt/conda

如有需要,可以使用&&来连接多条指令

多级构建

比如我们要使用cuda、anaconda等多个基础环境的时候就会用到多级构建

多级构建需要用到COPY命令来复制上级环境,用法如下

FROM image-1 as base
WORKDIR /base
RUN do something

FROM image-2 as bulid
WORKDIR /bulid
COPY --from=base /base ./build/base

WORKDIR

工作目录,设置这个后,运行这个镜像直接进入到这个目录

在dockerfile中某一级别设置工作目录后,之后的命令都会在这个目录下进行(因为再次进入这个镜像的默认目录就是工作目录)

使用conda打包环境,供离线安装

1. 安装打包工具

pip install conda-pack

2. 打包conda环境

conda pack -n 虚拟环境名称  -o xxx.tar.gz
或者
conda pack -n 虚拟环境名称 --ignore-editable-packages -o xxx.tar.gz

3. 上传到需要安装的机器上,解压安装

为了方便使用conda命令激活,推荐解压到anaconda安装目录的envs目录中

在envs目录下创建环境名

mkdir env_name

解压环境

tar -xzf xxx.tar.gz -C env_name

激活使用环境

conda env list
source activate env_name

实例:打包mmsegmentation深度学习环境

dockerfile的RUN命令默认是使用/bin/sh

# 从conda开始构建
FROM continuumio/anaconda3:2020.07

# 作者
MAINTAINER xxxx

# 从cuda复制基础环境
COPY --from=nvidia/cuda:11.4.0-devel-ubuntu20.04 / /

# 复制代码
COPY xx_code /xx_code

# 复制conda环境
COPY env_name.tar.gz /opt/conda/envs/

# 解压创建conda环境
RUN mkdir /opt/conda/envs/env_name
RUN tar -zxf /opt/conda/envs/env_name.tar.gz -C /opt/conda/envs/env_name

# 设置全局shell环境,使用/bin/bash
SHELL ["/bin/bash","-c"]

# 安装mmcv的环境
WORkDIR /xx_code
RUN source activate env_name && pip install -r requirements.txt && pip install --no-cache-dir -e .

RUN echo "source activate env_name " >> ~/.bashrc

编译、构建镜像

docker build -t images_name:v1 .

导出镜像

格式:docker save imagesID() > /存放位置/打包文件名.tar 参考

docker save imagesID > /xxx.tar

导入

格式:docker load < 打包文件名.tar

docker load < xx.tar

运行深度学习镜像

使用显卡,需要安装NVIDIA Container Toolkit

安装参考NVIDIA Container Toolkit安装指南

运行容器需要注意两个参数

docker run -idt --shm-size 4096m  --gpus all --name swin_seg xx:xx

# 参数一 
--shm-size  # 设置容器的共享内存大小,这里设置的4g

# 参数二
--gpus all # 开启gpu

详细文档

Docker部署深度学习模型 比如我有一个目标检测的项目,我想分享给朋友,那么他首先需要在自己的电脑上配置好显卡驱动、CUDA、CuDNN,在拿到我的项目后,还需要安装各种依赖库,最后代码还不一定跑起来。​ 在这个命令中,run是创建容器的指令,-it是交互式终端,因为创建的容器就相当于一个本机中的linux服务器,我们可以通过终端与容器交互。Docker容器通常是一个Linux容器,基于Docker镜像被创建,一个运行中的容器是一个运行在Docker主机上的进程,但和主机及所有在主机上的其他进程是隔离的。 阅读详情

相关推荐

Docker入门指南:基于 docker 搭建机器学习/深度学习开发环境

实际工作中,许多项目开发需要在Linux服务器上进行,本文为习惯使用 Windows 操作系统的朋友介绍一种基于Docker的,跨平台、便携性(方便移植、重新部署、可远程访问)的开发环境搭建方法。

xunyishuai5020的博客 5269

Docker代码环境打包

Docker是一种开源的容器化平台,它可以在操作系统级别运行应用程序。通过将应用程序及其依赖项封装成一个可移植的容器,Docker使得应用程序可以在任何环境中轻松部署、运行和管理。使用Docker,开发人员可以避免在不同环境中出现的配置问题,并且可以更快地构建、测试和交付应用程序。Docker还提供了强大的集群管理功能,可以自动扩展和负载均衡应用程序,从而实现高可用性和可伸缩性。这使得Docker成为现代云原生应用程序开发和部署的核心技术之一,本文基于官方文档对代码库docker打包部署进行介绍。

海贼王的博客 2827

window版本的Docker安装深度学习环境,pytorch

使用Docker安装深度学习环境,pytorch

qq_45064049的博客 2826

Docker打包及部署项目

Docker 是一个开源的容器化平台,用于构建、部署和运行应用程序。它使开发人员能够将软件及其所有依赖项打包到一个称为容器的标准单元中

Elite的博客 6922

VSCode连接Docker容器并在基础镜像上快速搭建深度学习环境的实用指南

vscode 连接基础镜像创建的容器,在容器中部署深度学习环境 pytorch-cuda,能够运行代码并正常使用cuda加速,使用docker commit打包成新镜像,新镜像保留原来的深度学习环境

weixin_52582573的博客 2782

『docker笔记』通过docker搭建深度学习环境

通过docker搭建深度学习环境! 文章目录一. docker简介二. centos安装docker第一步2.1. 安装前提条件2.2. 安装docker依赖环境2.3. 添加阿里云的软件源2.4. 更新yum缓存(为了保证能更新和下载需要的服务:如docker)三. centos安装docker第二步3.1. 安装并启动docker3.2. 启动Docker服务3.3. 设置开机自启四. docker高效搭建开发环境五. 关于宿主机卸载docker服务参考文章 一. docker简介 docker 是

AI新视界 4702

docker exe打包深度学习环境

不同平台的Docker安装方式可以参考官方文档(Docker Install) ,我这里就用Ubuntu系统作为例子。执行后看到打印出来正常的提示信息则表示安装成功。

weixin_52810783的博客 497

基于深度学习大模型实现离线翻译模型私有化部署使用,通过docker打包开源翻译模型,可到内网或者无网络环境下运行使用,可以使用一千多个翻译模型语言模型进行翻译

基于深度学习大模型实现离线翻译模型私有化部署使用,通过docker打包开源翻译模型,可到内网或者无网络环境下运行使用,可以使用一千多个翻译模型语言模型进行翻译,想要什么语种直接进行指定和修改就行。

代码讲故事 2599

VMware16+Ubuntu18.04+Docker打包pytorch深度学习环境镜像

基于VMware+Ubuntu+Docker的简单自定义镜像打包操作

qq_41620255的博客 2328

STM32CubeMx配置串口使用printf函数打印数据(HAL库开发)

HAL库开发串口,打印printf

m0_58832575的博客 6286

告别复杂配置!5分钟在Vue/React项目中集成讯飞语音听写WebSocket API

本文详细介绍了如何在Vue/React项目中快速集成讯飞语音听写WebSocket API,实现高效语音识别功能。通过对比不同通信方案,突出WebSocket在实时语音交互中的优势,并提供框架适配、音频处理及性能优化等关键技术点,帮助开发者5分钟内完成专业级语音听写功能集成。

weixin_28730353的博客 274

从零到一保姆级深度学习Docker镜像配置教程

主要介绍如何从零到一完成深度学习Docker镜像配置

戴璞微的学习之路 1万+

基于Qt实现的轻量级CAD画图软件

基于Qt开发的轻量级CAD应用程序

weixin_44954230的博客 5658

如何将深度学习中的项目打包成Dockerfile

这里写自定义目录标题背景什么是DockerfileDockerfile中命令如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 背景 我这里有一个深度学习的项目,对...

weixin_38834436的博客 4717

基于Python的网络拓扑图绘制

最近写论文画了许多图,在这里记录一些。当然,如果仅仅是展示性图片的话也可以使用visio,但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。(1)根据邻接矩阵画出网络拓扑图(2)画出网络拓扑图,并对节点和链路进行表示,包括对节点和链路的标号,颜色区分,以及尺寸区分。

m0_53961910的博客 7093

XY2-100协议解析

1.XY2-100包括四路信号 : SENDCK(时钟信号)、SYNC(同步信号)、CHANNELX(X通道)、CHANNELY(Y通道)

qq_38360574的博客 9529

docker 构建虚拟环境-深度学习环境(上)

1.docker在windows上的安装         首先,我们进入docker官网,下载安装文件,网址为:https://docs.docker.com/docker-for-windows/install/                  随后,我们需要登录才能下载。         下载之后安装,安装完后会提示你注

liqiang12689的博客 2306

PLSQL Developer安装详细步骤

一、下载安装PLSQL Developer(plsql安装百度也有步骤) 官网下载地址:https://www.allroundautomations.com/registered-plsqldev/ 1、网上自己下载适合自己电脑的安装包(32或64),并解压。 2、打开解压的文件夹,得到以下三个文件(分别是汉化工具,PLSQL安装包、激活码),双击安装,如下图: 3、安装界面,点击next,进入下一步,如图: 4、安装协议界面,此处必须选择“I accept the terms in

Gorden的博客 11万+

docker构建镜像环境搭建深度学习开发环境

我想经常需要装环境的同学应该很烦,可能因为你的不小心,导致系统崩溃等等问题,或者环境需要装另一个版本的cuda,但是目前换可能不是很方便。这些我都遇到过,那么docker可以满足你的一切需求,你可以安装不同的环境,打包然后上传,下次就算是系统崩溃,也可以快速部署环境,不用浪费太多的时间,毕竟时间是最宝贵的。我在网上找了很多相关博客还是不会,然后结合大语言模型,和自己的实际操作,写了这篇文章,主要的目的是记录。那么接下来开始吧。

qq_34508123的博客 1525

用 PERFORM ... ON COMMIT / ON ROLLBACK 把收尾工作做干净:从 SAP LUW 到 Update Task 的事务钩子实践

ABAP事务钩子机制解析 本文深入探讨SAP ABAP开发中的事务边界管理问题,重点分析PERFORM ... ON COMMIT/ROLLBACK机制: 事务分层:区分Database LUW(数据库提交)和SAP LUW(业务逻辑单元),后者通过COMMIT WORK触发多种收尾动作 钩子机制:PERFORM...ON COMMIT将子程序注册为事务结束回调,在提交/回滚时执行清理工作而非业务更新 执行顺序:钩子程序先于Update Task执行,仍保留当前会话内存上下文 现代实践:建议将FORM仅作为

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3993

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

docker用gpu的参数_[2020.12]基于Docker的深度学习环境的构建、迁移(附避坑指北)...

0 更新记录[2020年12月18日补更] 之前有写过一篇从0开始,带你从一台无OS的新机器从到到尾带你配置本地深度学习环境的文章,分享过来,希望有所帮助,见下方链接卡片LotusPanda:[Ubuntu18+RTX2080Ti]从0开始搭建深度学习环境TensorFlow+PyTorch​zhuanlan.zhihu.com[2020年12月14日补更] 开始添加 7 挖坑填坑指北 部分 [2...

weixin_35657965的博客 538

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

离线内网环境下基于Docker搭建深度学习开发环境记录^-^

4、进入到容器内部,通过命令(sudo docker exec -it 容器id /bin/bash)后,修改root账号的密码。内网环境说明:x86_64、CentOS7、Docker19.03、无显卡、2颗至强CPU、256G内存、8T存储。外网个人主机:虚拟机跑Ubuntu20.04、Docker19.05、RTX2060、i7、16G、512G。其中,22端口是开给SSH的,8501端口是开给streamlit的,9999端口是开给mlflow的。7、进入容器,安装Python的各种库。

lvluogeng的博客 552

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

docker的安装和配置

第一次接触docker这个词是中兴的HR面时,今年的秋招虽然已经结束了,但是中兴的那位软件工程师还是让我印象深刻,他给了我很多未来的建议,在这由衷得感谢他。虽然没有成为同事,他向我推荐的docker我还是决定学一下。 Docker是个啥? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可...

量子象限 211

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: java使用反射调用函数以及遇到的坑
明里MX
博客等级 码龄9年 7粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值