SDP详解

基于sdp协议的sip消息体(正文) 基于sdp协议的sip消息体 阅读详情

参考文章:https://www.cnblogs.com/yoyotl/p/5649648.html


在SDP消息体最重要的是描述媒体信息:

  • 1 媒体类型(video, audio, bfcp,h225摄像机控制协议,etc)
  • 2 传输协议(RTP/UDP/IP, H.320, etc)
  • 3 媒体格式(G711,G721,AAC-LD,H.264 video, MPEG video, etc)
  • 4 多播或单播地址和端口
  • 5 本端的带宽信息
  • 6 本端的加密信息
SDP属性分为会话级和媒体级,会话级属性对整个会话有效,媒体级属性只对该媒体行有效。有些属性既可以作为会话级属性,又可以作为媒体级属性,当两者同时存在时,在该媒体行优先使用媒体级属性值。
SDP有很多属性,具体可以参考RFC4566,这里只重点描述我认为重要的:

  • c行地址
        c=IN IP4 192.168.8.76
        解释:c=<网络类型> <地址类型> <地址>,定义连接地址,其中地址类型可以为域名形式
  •  b行带宽

b=AS:1920

解释:b=<类型>:<带宽>,定义本端可以接收的带宽,其中带宽可以分为CT和AS两类,CT是设置整个会议的带宽,AS是设置单个会话的带宽,它们的单位都是kbit/s。TIAS和AS的意义是一样的,只是单位是bit/s。


  • 音频m行
m=audio 10004 RTP/AVP 0 1 3     //m=<媒体类型> <媒体端口> <传输协议> <编码pt值的集合>
a=rtpmap:0 PCMU/8000                //a=rtpmap:<pt值> <音频协议> <采样率>
a=rtpmap:1 1016/8000
a=rtpmap:3 GSM/8000
a=sendonly                                    //a=本端媒体流的方向,取值包括sendonly/recvonly/sendrecv/inactive
a=ptime:20                                    //a=打包时长
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:NHomSmlnXy4qRCwhVi9ANVcwZ3Q3cXVaLykzJ1Rf|2^31|1:1
解释:音频能力一般协商协议、采样率。媒体能力是允许不对称的,这里的能力和pt值指的是本端允许接收的,而加密属性表示的是本端发送时使用的秘钥和加密算法
  • 视频m行
m=video 10006 RTP/AVP 109 110 96 34 31  //m=<媒体类型> <媒体端口> <传输协议> <编码pt值的集合>
a=rtpmap:109 H264/90000                   //a=rtpmap:<pt值> <视频协议> <采样率>
a=fmtp:109 profile-level-id=42801f; max-br=20010; sar=13  //a=rtpmap:<pt值> 分辨率、带宽、打包模式
a=rtpmap:110 H264/90000
a=fmtp:110 profile-level-id=42801f; packetization-mode=1; max-br=20010; sar=13
a=rtpmap:96 H263-1998/90000
a=fmtp:96 CIF4=1;CIF=1;QCIF=1;SQCIF=1;CUSTOM=352,240,1;CUSTOM=704,480,1
a=rtpmap:34 H263/90000
a=fmtp:34 CIF4=1;CIF=1;QCIF=1;SQCIF=1
a=rtpmap:31 H261/90000
a=fmtp:31 CIF=1;QCIF=1
a=rtcp-fb:* nack pli            //a=rtcp-fb:支持nack pli
a=rtcp-fb:* ccm fir             //a=rtcp-fb:支持fir方式的I帧请求
a=rtcp-fb:* ccm tmmbr           //a=rtcp-fb:支持流控
解释:
max-br表示最大带宽
max-mbps表示每秒传输的宏块大小
max-fs表示一帧图像大小 max-fs=宽*高/256
帧率 = max-mbps/max-fs
packetization-mode表示载荷类型,范围0-2(0:单一NAL  1:非交错  2:交错,隔行扫描)

profile-level-id:前两位来区分BP还是HP,64表示HP,42表示BP。后两位表示level-id,每个level-id对应不同的分辨率。当level-id和max-fs计算出分辨率不一致时,取大值。

  • BFCP m行

m=application 3238 UDP/BFCP *  //m=<媒体类型> <媒体端口> <传输协议>
a=setup:actpass  //当传输层为TCP/TLS时有意义,acitve:客户端,passive:服务端,actpass:即可客户端又可服务端
a=connection:new //当传输层为TCP/TLS时有意义,是重建连接还是用已有的连接
a=floorctrl:c-s   //辅流令牌角色,c:辅流令牌客户端,s:辅流令牌服务端,c-s::即可客户端又可服务端

  • 摄像机控制 m行

m=application 3236 RTP/AVP 100
a=rtpmap:100 H224/4800


sip篇——SDP、RTP、RTCP协议 sip作为互联网中的一个网络会话协议,管理整个会话过程,自然也支持过程中需要的一些网络传输协议。sip是应用层协议,想要在网络中进行信息传递,就避免不了与网络中各层的协议产生关联,用户代理发送的请求或响应可通过任何传输协议进行传输发送,比如RTP、RTCP、UDP 1.SDP协议 SDP(Session Description Protocol)会话描述协议,与sip配合使用时处在sip的正文部分,主要负责媒体协商,也就是协商RTP等传输协议所要用到的IP地址、端口号、媒体类型(视频、语音、文本等)等信 阅读详情

相关推荐

webrtc-sdp详解

1、SDP协议简介 SDP(Session Description Protocol) 是一种会话描述协议,基于文本,其本身并不属于传输协议,需要依赖其它的传输协议(比如 SIP 和 HTTP)来交换必要的媒体信息,用于两个会话实体之间的媒体协商,详细的标注规范可参考RFC2327和RFC4566。WebRTC 中使用 Offer-Answer 模型交换 SDP,本文详细介绍SDP各属性在WebRTC中的应用。 2、SDP组成 SDP是由多行文本组成的一个纯文本协议,如果将SDP从语义上分解成不同组件来描述

码农修仙的博客 4430

SDP协议详细介绍

SDP 协议分析  http://www.cnblogs.com/qingquan/archive/2011/08/02/2125585.html 一、SDP协议介绍 SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及

三少GG 1万+

webrtc sdp详解

SDP(Session Description Protocol)是一种通用的会话描述协议,主要用来描述多媒体会话,用途包括会话声明、会话邀请、会话初始化等。 WebRTC主要在连接建立阶段用到SDP,连接双方通过信令服务交换会话信息,包括音视频编解码器(codec)、主机候选地址、网络传输协议等。 协议版本号 v=0 会话发起者 o=<username> <sess-id> <sess-version> <nettype> <ad

wangbuji的博客 2799

SDP协议分析

一、SDP协议介绍 SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议是也是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中

倔强的晓奇 8927

SDP协议详解

目录SDP协议概述SDP格式SDP实例 SDP协议概述 SDP(SessionDescription Protocol )会话描述协议,用于描述多媒体会话,它为会话通知、会话初始和其它形式的多媒体会话初始等操作提供服务。 SDP的设计宗旨是通用性协议,所有它可以应用于很大范围的网络环境和应用程序,但 SDP 不支持会话内容或媒体编码的协商操作。 SDP信息包括: 会话名称和目标; 会话活动时间; 构成会话的媒体; 有关接收媒体的信息、地址等。 SDP格式 SDP 信息是文本信息,UTF-8 编码采用 I

路人coder 1631

一文详解SDP协议:多媒体会话参数与媒体流描述协议

SDP用于在互联网上传输多媒体会话的配置信息,常见于音视频、实时通信会话等。SDP协议提供一种灵活且可扩展的机制,通过在会话的参与者之间交换和传递SDP会话描述信息,实现多媒体会话参数与配置的协商和管理。这种机制为多媒体会话的协商与管理提供了完备的解决方案。

bjxiaxueliang的CODING小栈 6147

sdp详解

SDP文件解析   SDP是一个IETF标准格式,用来描述视频和/或者音频的RTP流。 会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。 会话目录用于协助多媒体会议的通告,并为会话参与者传送相关设置信息。SDP协议即用于将这种信息传输到接收端。SDP完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通

webrtc 3万+

【android bluetooth 协议分析 07】【SDP详解 2】【SDP 初始化】

摘要:本文分析了Android蓝牙协议栈中SDP(Service Discovery Protocol)的初始化流程。当应用调用enable()时,底层协议栈会触发event_start_up_stack(),进而调用sdp_init()进行SDP模块初始化。该函数主要完成:1) 清空全局控制块sdp_cb;2) 为每个连接分配定时器;3) 配置L2CAP的MTU参数;4) 设置属性列表和搜索记录上限;5) 配置日志级别;6) 注册L2CAP回调函数;7) 向L2CAP层注册SDP服务。sdp_cb结构体保

奔跑吧 android 的博客 861

SDP协议是什么,详解SDP协议

SDP(Session Description Protocol)是一种会话描述协议,用于描述多媒体会话的参数。它是一种文本协议,通常用于VoIP(Voice over Internet Protocol)和视频会议等应用中。SDP协议定义了一种标准的格式,用于描述会话的各种参数,包括媒体类型、媒体格式、媒体地址等。SDP协议最初由IETF(Internet Engineering Task Force)在RFC 2327中定义,后来又在RFC 4566中进行了更新和扩展。

weixin_74021557的博客 8674

华硕笔记本+Ubuntu 20.04:用cpupower解决Intel CPU频率上不去/功耗墙问题实战

本文详细介绍了在华硕笔记本Ubuntu 20.04系统下使用cpupower工具解决Intel CPU频率受限和功耗墙问题的实战方法。通过禁用Intel P-State驱动、配置userspace模式以及高级调优技巧,帮助用户突破性能瓶颈,提升编译和计算效率。

weixin_42561476的博客 525

使用 Vosk 实现语音识别

在近两年里,如果说想要在本地部署离线语音识别模型,那么和肯定是首选项。所以为什么要使用呢?

weixin_48967543的博客 9719

WebRTC | SDP详解

SDP的组织结构、SDP的格式以及WebRTC为了自身的需要对标准SDP的修改。

该用户还没想到好的昵称的博客 6020

别再死记硬背了!用Python+Matlab/Simulink手把手带你理解PID控制器的‘稳、快、准’

本文通过Python编程和Matlab/Simulink仿真,深入解析PID控制器的‘稳、快、准’三大核心指标,帮助读者直观理解PID控制的实现原理与参数整定技巧。内容涵盖经典控制理论和自动控制原理,提供实战案例和高级调参技巧,适合工业自动化领域的学习者和工程师。

weixin_42551227的博客 369

sdp 详解

SDP目的就是在媒体会话中,传递媒体流信息,允许会话描述的接收者去参与会话。SDP基本上在internet上工作。他定义了会话描述的统一格式,但并不定义多播地址的分配和SDP消息的传输,也不支持媒体编码方案的协商,这些功能均由下层传送协议完成。典型的会话传送协议包括:SAP(Session Announcement Protocol会话公告协议),SIP(Session Initiation Pr...

yunlianglinfeng的专栏 3129

angular中访问本地json文件

先在assets文件夹下写一个json文件,这样在打完包之后也可以手动修改json文件内容 1、在需要访问本地json文件的ts文件里面引入 import{HttpClient}from'@angular/common/http'; 2、用ajax请求调用,我这里是用已经封装好的ajax请求调用 gethttp = ()=>{ var self = this self.ajax.getAjax("../../assets/server.json","g...

蜗牛~~ 1830

华为OD新系统真题-最小极差分组(C/C++/Py/Java/Js/Go)

华为OD机试 新系统真题【最小极差分组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【最小极差分组】多语言题解。

qq_45776114的博客 591

WebRTC SDP详解

TL;NR 更详细的 WebRTC SDP 解析请参考https://tools.ietf.org/html/draft-ietf-rtcweb-sdp-12 0x00 前言 SDP (Session Description Protocol) 格式是一种很有历史的格式,在 20 世纪的会议系统中通常都是使用 SDP 格式的文本来交互多媒体通信双方的连接属性信息和媒体属性信息,在今天 JSON 这种对象化和可拓展的格式面前确实显得不够通用,尤其是在进行 RPC 通信时通常要将 SDP 信息解析成模..

ydjjcdd的博客 1582

使用Qt和MX Component插件实现与菱PLC的通信

在本文中,我们介绍了如何使用Qt和MX Component插件实现与菱PLC的通信。我们首先安装和配置了MX Component插件,并在Qt项目中初始化和使用MX Component来连接、读取和写入PLC的数据。安装完成后,您需要在Qt项目中配置MX Component的路径,以便Qt可以找到所需的库文件。在本文中,我们将探讨如何使用Qt和MX Component插件来实现与菱PLC的通信。在主函数中,我们将初始化MX Component,并创建一个与PLC通信的示例。在上面的代码中,我们使用了。

TlScratch的博客 996

从零开始精通RTSP之SDP格式详解

SDP,即会话描述协议,英文全称为Session Description Protocol,是一种用于描述多媒体会话参数的文本协议(对应RFC2327)。SDP是中立于传输协议的,能够适应多种实时通信场景,比如:VoIP通话、视频会议和实时流媒体。SDP定义了一种标准的格式,用于描述会话的各种参数,包括:媒体类型、媒体格式、媒体地址等。这些参数对于会话的参与者来说至关重要,因为它们需要根据这些信息来正确配置和连接到会话。

hope_wisdom的技术博客 4774

[特殊字符] 2026终极实战:Python爬取得物App球鞋实时交易价格 —— 从签名破解到数据可视化全栈指南

价格敏感度:热门鞋款(如Air Jordan 1、Yeezy 350、Dunk SB)价格每分钟都在波动,短线套利空间巨大。稀缺性:限量发售、联名款、地区限定,导致供需关系实时变化。数据壁垒:得物App使用自研WMS签名算法设备指纹绑定动态请求头加密,是爬虫工程师的“练兵场”。本博客将手把手带你从零搭建一套生产级得物球鞋价格爬虫系统,涵盖:抓包与逆向分析(mitmproxy + Frida)签名算法逆向(Python复刻)设备模拟与心跳保活(ADB + uiautomator2)

2201_76125261的博客 1125

问答式AI vs 智能体(Agent):它们有什么不同?

你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。

Johnny2004的专栏 449

WebRTC SDP 详解和剖析

WebRTC SDP 详解和剖析 原创网络通信/物联网作者:VideoCloudTech时间:2020-12-08 15:25:1010550 WebRTC 是 Web Real-Time Communication,即网页实时通信的缩写,是 RTC 协议的一种 Web 实现,项目由 Google 开源,并和 IETF 和 W3C 制定了行业标准。在国内 WebRTC 已经获得了越来越多厂商的支持,应用前景变得更加广阔,所以我们也开设专栏,分享阿里云内部的 WebRTC 研究工作。 本篇...

hyl999的专栏 2995

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

上一篇: DH交换秘钥算法
下一篇: 6年定位问题的总结
zoe_from_mars
博客等级 码龄19年 27粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值