以 Kubernetes 的方式来安装运行极狐GitLab Runner

Helm一键部署gitlab runner helm部署gitlab runner 阅读详情

目录

Runner 的安装和注册

前提条件

Helm Chart 准备

Helm 安装

Runner 的使用


前面分别讲述了用安装包在 Ubuntu 上安装和运行极狐GitLab Runner 以及用 Docker 来运行极狐GitLab Runner。本文将讲述用 Kubernetes 来安装运行极狐GitLab Runner。

Runner 的安装和注册

可以用极狐GitLab Runner Helm Chart 来安装配置极狐GitLab Runner。用这种方法安装的 Runner 使用 Kubernetes 做执行器,当有 CI/CD Pipeline job 需要执行的时候,会有一个 pod 来完成 job 构建。

前提条件

  • 极狐GitLab 实例需要和 Kubernetes 集群能够交互
  • Kubernetes 版本为 1.4+
  • 已安装好的kubectl 和 helm(helm 2 和 helm 3 都可以,本文用 helm 3)

Helm Chart 准备

首先添加一下极狐GitLab 的 helm chart repo

$ helm repo add gitlab https://charts.gitlab.io
$ helm repo list
NAME  	URL
gitlab	https://charts.gitlab.io/

接下来就可以用 helm install 命令来用极狐GitLab Runner Helm Chart 来完成安装。

安装之前可以自定义一下 values.yaml 文件,values.yaml 的详细配置可以在极狐GitLab Runner Helm Chart 官网来查看。

以下是此次演示所用的 values.yaml 文件内容:

imagePullPolicy: IfNotPresent
gitlabUrl: "https://jh-xiaomage.gitlab.cn"
runnerRegistrationToken: "sFV-HEkLC_NgH2vLALfG"
concurrent: 10
checkInterval: 30
logLevel: info

rbac:
  create: true

metrics:
  enabled: false

runners:
  config: |
    [[runners]]
      [runners.kubernetes]
        namespace = "{{.Release.Namespace}}"
        image = "ubuntu:20.04"
        [[runners.kubernetes.volumes.host_path]]
            name = "docker"
            mount_path = "/var/run/docker.sock"
            host_path = "/var/run/docker.sock"
  privileged: "true"
  name: kubernetes-runner
  tags: "kubernetes,runner"

securityContext:
  runAsUser: 100
  fsGroup: 65533

重要参数说明:

  • gitlabUrl:极狐GitLab 实例的 URL(本例为 https://jh-xiaomage.gitlab.cn,如何安装极狐GitLab 实例可以查看文章使用 Omnibus 来安装极狐GitLab );

  • runnerRegistrationToken:注册 Runner 时所需要的 Token,可以在 Settings --> CI/CD --> Runners 里面查看;

  • concurrent:并行运行 Job 的最大值;

  • checkInterval:极狐GitLab 实例检查新构建的时间间隔;

  • runner:runner 的配置内容,包括 name,tag 等等,这些内容最后会以 config.toml 文件的形式呈现;

更多参数的配置和定义可以查看极狐GitLab Helm Chart values.yaml 文件详情。

Helm 安装

先创建一个 namespace

$ kubectl create ns jh-k8s-runner

接着用如下命令进行安装:

$ helm install --namespace jh-k8s-runner jh-gitlab-runner -f value.yaml gitlab/gitlab-runner
NAME: jh-gitlab-runner
LAST DEPLOYED: Wed Dec  8 23:07:50 2021
NAMESPACE: jh-k8s-runner
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Your GitLab Runner should now be registered against the GitLab instance reachable at: "https://jh-xiaomage.gitlab.cn"

Runner namespace "jh-k8s-runner" was found in runners.config template.

查看 pod 状态

$ kubectl -n jh-k8s-runner get pods -w
NAME                                              READY   STATUS    RESTARTS   AGE
jh-gitlab-runner-gitlab-runner-767779fcc8-jpszk   0/1     Running   0          13s
jh-gitlab-runner-gitlab-runner-767779fcc8-jpszk   1/1     Running   0          21s

可以进入 pod 查看一下:

$ gitlab-runner --version
Version:      14.1.0
Git revision: 8925d9a0
Git branch:   14-1-stable
GO version:   go1.13.8
Built:        2021-07-20T11:43:26+0000
OS/Arch:      linux/amd64

$ gitlab-runner list
Runtime platform                                    arch=amd64 os=linux pid=45507 revision=8925d9a0 version=14.1.0
Listing configured runners                          ConfigFile=/home/gitlab-runner/.gitlab-runner/config.toml
kubernetes-runner                                   Executor=kubernetes Token=5x8xMPnsgq7zqaWNxUvL URL=https://jh-xiaomage.gitlab.

可以看到 pod 里面已经内置了 gitlab-runner 命令,且有注册成功的 Runner 实例,名称为 kubernetes-runner,我们在 Runner 的控制台上检查一下:

 

可以看到 Runner 控制台上多了一个名为 kubernetes-runner,tag 为 kubernetes、runner 的 Runner 实例,而这就是用 Helm Chart 安装的,以 Kubernetes 方式来运行的极狐GitLab Runner 实例。下面就来看看如何使用它完成 CI/CD Pipeline Job 的构建。

其他两个实例是用安装包、docker 的方式来运行的,具体流程可以查看文章用安装包在 Ubuntu 上安装和运行极狐GitLab Runner 以及用 Docker 来运行极狐GitLab Runner。

Runner 的使用

依旧使用在 Ubuntu 上安装使用极狐GitLab Runner中的 Demo,现在让以 Kubernetes 运行的 Runner 来完成 CI/CD Pipeline 的执行。可以在 .gitlab-ci.yml 的 job 中增加 tags 字段,如果 tags 的内容和 Runner 的 tag(kubernetes 和 runner) 相匹配,则此 Runner 被分配用来执行此次 CI/CD Pipeline。文件内容如下:

image: docker:20.10.7
   
services:
  - docker:20.10.7-dind

stages:          
  - build

build:
  stage: build
  tags: 
    - kubernetes
  script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE:2.0.0 .
    - docker push $CI_REGISTRY_IMAGE:2.0.0

接着直接触发 CI/CD Pipeline 即可,查看构建结果:

查看构建日志:

 可以看到此次构建是在名为 kubernetes-runner 的 Runner 上进行的。

整个过程也可以看一下 pod 的变化:

$ kubectl -n jh-k8s-runner get pods -w
NAME                                              READY   STATUS    RESTARTS   AGE
jh-gitlab-runner-gitlab-runner-767779fcc8-jpszk   1/1     Running   0          15h
runner-5x8xmpns-project-2-concurrent-08jd2w       0/3     Pending   0          0s
runner-5x8xmpns-project-2-concurrent-08jd2w       0/3     Pending   0          0s
runner-5x8xmpns-project-2-concurrent-08jd2w       0/3     Init:0/1   0          0s
runner-5x8xmpns-project-2-concurrent-08jd2w       0/3     PodInitializing   0          2s
runner-5x8xmpns-project-2-concurrent-08jd2w       3/3     Running           0          3s
runner-5x8xmpns-project-2-concurrent-08jd2w       3/3     Running             0          5s
runner-5x8xmpns-project-2-concurrent-08jd2w       3/3     Terminating       0          23s

可以看到,新的 CI/CD Pipeline Job 会有一个新的 pod 产生来完成整个构建。

以 Kubernetes 来运行极狐GitLab Runner,本质上就是用 Kubernetes 内置的资源(service、deployment、configmap、secret 等)完成极狐GitLab Runner 在 Kubernetes 上的安装,安装的过程就会完成 Runner 的注册。当有 CI/CD Pipeline Job 需要构建的时候,就会有一个新的 pod 生成来完成此次构建,构建结束,pod 就被删除。

GitLab Runner部署(kubernetes环境),Java开发进大厂面试必备技能 本次实战内容 今天咱们会一起完成以下操作: 部署minio,pipeline脚本中的cache功能由minio来实现; 配置和部署GitLab Runner; 编写和运行pipeline脚本; 环境和版本信息 本次实战涉及到多个服务,下面给出它们的版本信息供您参考: GitLab:Community Edition 13.0.6 GilLab Runner:13.1.0 kubernetes:1.15.3 Harbor:1.1.3 Minio:2020-06-18T02. 阅读详情

相关推荐

kubernetes部署gitlab+ci/cd Runner+Harbor+spring-boot-app

111。

青春不流名 792

gitlab-runner注册到gitlab时报错:ERROR: Registering runner... failed xxxxxxxx

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 2134

Gitlab-Runner安装

本文介绍了通过Helm在Kubernetes上部署GitLab Runner的完整流程

demon7552003的小本本 2258

kubernetes 部署 gitlab-runner

这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab-runner。gitlab-runner pod启用时需要从pod内部使用 gitlab 外部域名。2、选择CI/CD–>Runners–> New instance runner。说明:gitlab实例使用自签名证书并且使用本地域名时,需执行以下配置。1、配置gitlab url在pod中的域名解析。查看运行的gitlab-runner pods。使用helm部署gitlab-runner。1、登陆UI创建新的runner。

IT 2847

以容器的方式运行极狐 GitLab Runner

极狐GitLab Runner 的安装使用非常灵活,本文探索用 docker 来运行极狐GitLab Runner。

DevOps008的博客 945

极狐GitLab 17.3 重点功能解读

极狐GitLab 17.3 正式发布了多项与敏捷项目管理、源代码托管、CI/CD 及安全合规相关的更新,以下是部分重点功能解读

GitLab 中国发行版 1606

极狐GitLab Runner Kubernetes(k8s)配置

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

GitLab 中国发行版 2287

GitLab版本发布 17.5 发布 20+ 与 DevSecOps 相关的功能【六】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。沿袭GitLab版本月度发布传统,极狐GitLab 发布了 17.5 版本,该版本带来了多仓库 MR 合并时考虑统一主流水线的执行状态(JH-only)、增强的分支规则编辑功能、密钥推送保护已经正式可用等几十个重点功能的改进。下面是部分重点功能的详细解读。

GitLab 中国发行版 1962

使用 kind 集群安装运行极狐GitLab Runner【下】

使用 kind 创建极狐GitLab Runner。

GitLab 中国发行版 1329

GitLab Runner部署(kubernetes环境)

cache:对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。再分享一波我的Java面试真题+视频学习详解+技能进阶书籍缓存的key来自分支信息,缓存位置是vendor文件夹cache:对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

2401_85111850的博客 1194

gitlab-runner使用kubernetes executor

记录一下使用gitlab-runner通过k8s作为executor来进行cicd的一个过程。 包括但不限于: gitlab-runner部署到k8s的deployment.yml,以及一些configmap和serviceaccount gitlab-runner使用的config.toml,定义executor=k8s 项目根目录的.gitlab-ci.yml文件。定义整个cicd的流程。 另外简单提供了一下dind方案,以及业务镜像部署到k8s的方案。

IT老吴的博客 3975

在K8S中运行gitlab-runner

apiVersion: v1 kind: Namespace metadata: name: gitlab-ci --- apiVersion: v1 kind: Secret metadata: name: gitlab-ci-token namespace: gitlab-ci labels: app: gitlab-ci-runner data: GITLAB_CI_TOKEN: WmF0Y3JNbUxUbmNncnpKem5CX1UK --- apiVersion: v1

热气球 3716

【QT+PCL】串口读取单线激光雷达数据并在QVtkWidget组件中实时刷新(一)

(本文主要记录开发过程以及遇到的困难及解决方式)

2301_76329543的博客 3068

使用 k3d 来运行极狐GitLab Runner

k3d 与极狐的完美融合。

DevOps008的博客 1758

银河麒麟V10ServerSP3中安装Nacos2.4.x详细教程

银河麒麟V10ServerSP3中安装Nacos2.4.x详细教程

yuanjinshenglife的专栏 1303

NC数据预处理避坑指南:从MATLAB读取到GeoTIFF导出,解决坐标翻转与值域异常

本文详细解析了NC数据预处理中的常见问题,包括MATLAB读取时的坐标翻转与GeoTIFF导出时的值域异常。通过实战案例,介绍了如何解决矩阵方向错乱、处理FillValue与scale_factor、精准移植空间参考等关键问题,帮助研究者高效完成气象数据的批量处理与GIS兼容性验证。

weixin_30788619的博客 656

如何用 Helm Chart 安装指定版本的 GitLab Runner?

本分分享如何使用 Helm 来在 Kubernetes 集群上安装极狐GitLab Runner。整体步骤分为:Helm 的安装、vaules.yaml 文件的配置、Runner 的安装、Runner 的测试。

GitLab 中国发行版 1610

人机协作新纪元:AI会抢走IT人的饭碗吗?

产品经理用自然语言描述需求,AI将其转化为技术规格书(准确率已达89%)

820

极狐GitLab CI/CD 作业一直处于等待状态,如何解决?

本分分享 GitLab CI/CD Job 不工作的的故障排查方法:当 GitLab Runner 不接受 Job,Job 一直处于等待状态,如何解决此问题。

GitLab 中国发行版 3244

360可视门铃双摄版数据恢复实战:BIN文件解析与视频重组

本文详细解析了360可视门铃双摄版BIN文件的数据恢复过程,包括文件结构分析、双摄像头数据存储机制及视频重组技术。通过Python开发环境和FFmpeg工具链,成功实现了H.265视频流的解析与重组,为智能家居设备数据恢复提供了实用解决方案。

weixin_29196891的博客 916

ADRC自抗扰PD+ESO控制(博途SCL源代码)

文章浏览阅读119次。线性自抗扰控制(LADRC)系统算法框图-优快云博客文章浏览阅读335次。NLADRC自抗扰控制从Simulink仿真到PLC控制实现_自抗扰控制器 simulink仿真-优快云博客本文介绍了如何将ADRC自抗扰控制算法从Simulink仿真应用到PLC控制中,包括Simulink框图、TD微分器模型、MATLAB函数的使用、SCL控制代码,以及非线性状态误差反馈控制率的实现。ADRC自抗扰PD+ESO控制(CODESYS测试+完整ST代码)-优快云博客。

RXXW_Dor的博客 1318

用 K3s 来运行安装和极狐 GitLab Runner

使用 K3s 来安装和运行极狐GitLab Runner。

GitLab 中国发行版 1765

(6)APB总线协议 —— 逻辑梳理(0.1认知)

这篇大家就差不多看看就行

CAUC_learner的博客 2704

如何使用 Helm 安装 GitLab Runner?

如何使用 Helm 安装极狐GitLab Runner。

GitLab 中国发行版 1257

063、推挽变换器的磁偏问题与解决

本文针对推挽变换器中的磁偏问题展开分析。作者通过实际案例指出,磁偏主要由开关管导通压降差异和驱动信号不对称引起,会导致变压器饱和、MOS管炸毁等问题。文章提供了四种解决方案:采用电流模式控制、添加隔直电容、优化对称驱动设计以及引入磁芯气隙(作为最后手段)。调试时应重点观察原边电流波形对称性、变压器声音和直流分量。作者强调实践经验的重要性,建议预留隔直电容位置,并指出推挽拓扑在500W以上功率场合的局限性。这些基于实战的经验总结为电源工程师提供了有价值的参考。

Jack010169的博客 312

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

极狐GitLab 17.3 重点功能解读 & 升级指南

沿袭我们的月度发布传统,极狐GitLab 发布了 17.2 版本,该版本带来了从极狐GitLab UI 上删除 Pod、从本地终端轻松连接到集群以及为单个项目添加多个合规框架等几十个重点功能的改进。下面是部分重点功能的详细解读。关于极狐GitLab 的安装升级,可以查看官方指导文档。极狐GitLab 是 GitLab 在中国的发行版,对于中国用户使用体验更友好。

GitLab 中国发行版 1973

深度学习工具包 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")

上一篇: 以容器的方式运行极狐 GitLab Runner
下一篇: 利用极狐GitLab DevSecOps 功能检测 log4j 的多种方式
DevOps008
博客等级 码龄8年 75粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值