当前位置: 首页 > news >正文

青岛建网站哪个好个体工商户如何注销

青岛建网站哪个好,个体工商户如何注销,工业产品设计就业前景,企业官网建设文章目录 权重初始化方法Xavier初始化#xff08;Xavier initialization#xff09;Kaiming初始化#xff0c;也称为He初始化LeCun 初始化正态分布与均匀分布Orthogonal InitializationSparse Initializationn_in和n_out代码实现 权重初始化方法 Xavier初始化#xff08;X… 文章目录 权重初始化方法Xavier初始化Xavier initializationKaiming初始化也称为He初始化LeCun 初始化正态分布与均匀分布Orthogonal InitializationSparse Initializationn_in和n_out代码实现 权重初始化方法 Xavier初始化Xavier initialization 是一种用于初始化神经网络权重的方法也称为Glorot初始化。更有效地传播信号并减少梯度消失或梯度爆炸的问题。适用于激活函数为tanh或sigmoid的情况。 Xavier初始化的计算方法如下 Glorot或 Xavier初始化 适用于激活函数如sigmoid和tanh。初始化公式 σ 2 n in n out \sigma \sqrt{\frac{2}{n_{\text{in}} n_{\text{out}}}} σnin​nout​2​ ​ 其中 n in n_{\text{in}} nin​ 是输入单元数 n out n_{\text{out}} nout​ 是输出单元数。 对于单个神经元的权重w从均匀分布或正态分布中随机采样具体取决于所选择的激活函数 如果使用tanh激活函数从均匀分布采样 采样范围[-sqrt(6 / (n_in n_out)), sqrt(6 / (n_in n_out))]其中n_in是上一层的输入节点数量n_out是当前层的输出节点数量。 如果使用sigmoid激活函数从正态分布采样 均值0方差sqrt(2 / (n_in n_out))其中n_in是上一层的输入节点数量n_out是当前层的输出节点数量。 Kaiming初始化也称为He初始化 He 初始化 适用于ReLU及其变种如LeakyReLU激活函数。初始化公式 σ 2 n in \sigma \sqrt{\frac{2}{n_{\text{in}}}} σnin​2​ ​ 这种初始化方法主要用于修正线性单元Rectified Linear UnitsReLU激活函数的神经网络。 与Xavier初始化适用于tanh和sigmoid等S型激活函数不同Kaiming初始化专门针对ReLU激活函数的特性进行优化。ReLU是一个常用的非线性激活函数它在输入大于零时保持不变在输入小于等于零时输出为零。 Kaiming初始化的计算方法如下 对于单个神经元的权重w从均匀分布或正态分布中随机采样具体取决于所选择的激活函数 如果使用ReLU激活函数从正态分布采样 均值0方差sqrt(2 / n_in)其中n_in是上一层的输入节点数量。 对于带有ReLU激活的卷积层可以使用相同的初始化方法只是需要考虑卷积层的输入通道数量即n_in。 LeCun 初始化 适用于Sigmoid激活函数。初始化公式 σ 1 n in \sigma \sqrt{\frac{1}{n_{\text{in}}}} σnin​1​ ​ 正态分布与均匀分布 使用较小的标准差如0.01从正态分布中采样权重。使用较小的范围如-0.01到0.01从均匀分布中采样权重。 Orthogonal Initialization 使用正交矩阵初始化权重。这种初始化方法对于某些任务和模型架构可能很有益。 Sparse Initialization 将大部分权重初始化为0只初始化一小部分非零的权重。 n_in和n_out n_in和n_out分别表示神经网络层的输入节点数量和输出节点数量。这些节点也称为神经元它们是网络的基本组成部分。 n_in代表上一层前一层的节点数量也就是当前层的输入数量。在神经网络中每个神经元都会接收来自上一层所有节点的输入这些输入被加权和后传递给当前神经元的激活函数。因此n_in指的是上一层与当前层之间的连接数量。 n_out代表当前层的节点数量也就是当前层的输出数量。每个神经元会将经过激活函数处理后的结果传递给下一层所有节点形成下一层的输入。因此n_out指的是当前层与下一层之间的连接数量。 代码实现 #include iostream #include Eigen/Dense #include random #include cmathEigen::MatrixXd glorotInitialize(int rows, int cols); Eigen::MatrixXd heInitialize(int rows, int cols); Eigen::MatrixXd lecunInitialize(int rows, int cols); Eigen::MatrixXd normalDistributionInitialize(int rows, int cols, double std_dev0.01); Eigen::MatrixXd uniformDistributionInitialize(int rows, int cols, double limit0.01); Eigen::MatrixXd orthogonalInitialize(int rows, int cols); // Sparse Initialization需要额外参数来确定稀疏度这里我们使用一个简化版本指定一个非零的权重数。 Eigen::MatrixXd sparseInitialize(int rows, int cols, int nonZeroCount);//1. **Glorot (Xavier) Initialization**:Eigen::MatrixXd glorotInitialize(int rows, int cols) {std::random_device rd;std::mt19937 gen(rd());double limit sqrt(6.0 / (rows cols));std::uniform_real_distribution dis(-limit, limit);Eigen::MatrixXd matrix(rows, cols);for(int i 0; i rows; i) {for(int j 0; j cols; j) {matrix(i, j) dis(gen);}}return matrix; }//**He Initialization**:Eigen::MatrixXd heInitialize(int rows, int cols) {std::random_device rd;std::mt19937 gen(rd());double std_dev sqrt(2.0 / rows);std::normal_distribution dis(0, std_dev);Eigen::MatrixXd matrix(rows, cols);for(int i 0; i rows; i) {for(int j 0; j cols; j) {matrix(i, j) dis(gen);}}return matrix; }//3. **LeCun Initialization**:Eigen::MatrixXd lecunInitialize(int rows, int cols) {std::random_device rd;std::mt19937 gen(rd());double std_dev sqrt(1.0 / rows);std::normal_distribution dis(0, std_dev);Eigen::MatrixXd matrix(rows, cols);for(int i 0; i rows; i) {for(int j 0; j cols; j) {matrix(i, j) dis(gen);}}return matrix; }//4. **Normal Distribution Initialization**:Eigen::MatrixXd normalDistributionInitialize(int rows, int cols, double std_dev) {std::random_device rd;std::mt19937 gen(rd());std::normal_distribution dis(0, std_dev);Eigen::MatrixXd matrix(rows, cols);for(int i 0; i rows; i) {for(int j 0; j cols; j) {matrix(i, j) dis(gen);}}return matrix; }//5. **Uniform Distribution Initialization**:Eigen::MatrixXd uniformDistributionInitialize(int rows, int cols, double limit) {std::random_device rd;std::mt19937 gen(rd());std::uniform_real_distribution dis(-limit, limit);Eigen::MatrixXd matrix(rows, cols);for(int i 0; i rows; i) {for(int j 0; j cols; j) {matrix(i, j) dis(gen);}}return matrix; }//6. **Orthogonal Initialization**: Eigen::MatrixXd orthogonalInitialize(int rows, int cols) {// 创建一个随机矩阵std::random_device rd;std::mt19937 gen(rd());std::normal_distribution dis(0, 1);Eigen::MatrixXd randomMatrix(rows, cols);for(int i 0; i rows; i) {for(int j 0; j cols; j) {randomMatrix(i, j) dis(gen);}}// 使用QR分解获得正交矩阵Eigen::HouseholderQREigen::MatrixXd qr(randomMatrix);Eigen::MatrixXd orthogonalMatrix qr.householderQ();// 如果您需要一个具有特定维度的正交矩阵例如rows ! cols您可以选择一个子矩阵return orthogonalMatrix.block(0, 0, rows, cols); }//7. **Sparse Initialization**:Eigen::MatrixXd sparseInitialize(int rows, int cols, int nonZeroCount) {Eigen::MatrixXd matrix Eigen::MatrixXd::Zero(rows, cols);std::random_device rd;std::mt19937 gen(rd());std::uniform_real_distribution dis(-1, 1);for(int i 0; i nonZeroCount; i) {int r rand() % rows;int c rand() % cols;matrix(r, c) dis(gen);}return matrix; } int main() {int rows 5;int cols 5;// Glorot InitializationEigen::MatrixXd weights_glorot glorotInitialize(rows, cols);std::cout Glorot Initialized Weights: std::endl weights_glorot std::endl std::endl;// He InitializationEigen::MatrixXd weights_he heInitialize(rows, cols);std::cout He Initialized Weights: std::endl weights_he std::endl std::endl;// LeCun InitializationEigen::MatrixXd weights_lecun lecunInitialize(rows, cols);std::cout LeCun Initialized Weights: std::endl weights_lecun std::endl std::endl;// Normal Distribution InitializationEigen::MatrixXd weights_normal normalDistributionInitialize(rows, cols);std::cout Normal Distribution Initialized Weights: std::endl weights_normal std::endl std::endl;// Uniform Distribution InitializationEigen::MatrixXd weights_uniform uniformDistributionInitialize(rows, cols);std::cout Uniform Distribution Initialized Weights: std::endl weights_uniform std::endl std::endl;// Sparse Initializationint nonZeroCount 10; // As an example, set 10 weights to non-zero valuesEigen::MatrixXd weights_sparse sparseInitialize(rows, cols, nonZeroCount);std::cout Sparse Initialized Weights with nonZeroCount non-zero values: std::endl weights_sparse std::endl;return 0; }
http://www.dnsts.com.cn/news/18198.html

相关文章:

  • 优秀设计案例网站成品在线视频免费入口
  • 如何进行网站运营与规划蓝色经典网站
  • 济南怎么做网站自己在线制作logo免费下载
  • 二级院系网站建设情况软件工程项目案例
  • 做网站都需要什么技术做美工用的网站
  • 北京公司建设网站网站安全性怎么做
  • 绥化做网站100个最好的微信小程序
  • 安徽 网站开发小米网站建设书
  • 省机关事务局网站建设管理情况甘肃省引洮工程建设管理局官方网站
  • 建设设计网站上海jsp网站建设
  • 代刷网站只做软件下载如何对网站做引擎优化
  • 怎样做信息收费网站嵌入式软件开发要求
  • 郑州企业建站公司定制云南百度公司
  • 如何用网站做淘宝客wordpress 购物车
  • 兖州网站开发如何自建网站入口
  • 安阳做网站优化佛山自定义网站建设
  • 邵阳市建设局网站首页自己的服务器做网站
  • php网站屏蔽词怎么做免费域名申请 2021
  • 网站外链建设是什么小程序商城开发公司哪个好
  • 通州广州网站建设外贸管理软件有哪些
  • 南安网站建设品牌形象设计方案
  • 那个网站有用director做的片头网页设计程序
  • 做网站ps建立多大的画布可以做微信推文的网站
  • 灵感网站seo搜索引擎的优化
  • 福州建设局网站如何做自己的网站后台
  • 做酒店网站wordpress页面显示分类
  • joomla网站如何加入会话功能辽源网站建设设计
  • 商城网站开发的目的和意义php做网站多少钱
  • 网站建设会遇到哪些问题wordpress浏览数插件
  • 邢台网站制作哪里做招聘网站开发策划方案