SEO教程

SEO教程

Products

当前位置:首页 > SEO教程 >

C语言如何实现高效网站开发?探索WordPress的年份索引功能

2026-02-19 23:11 5


4、权重参数矩阵初始化

读者需要了解神经网络的基础知识可以参考神经网络深度学习计算机视觉得分函数损失函数前向传播反向传播激活函数

C语言如何实现高效网站开发?探索WordPress的年份索引功能

本文为大家详细的描述了实现神经网络的逻辑代码。

并且用手写识别来实验结果基本实现了神经网络的要求。

二、神经网络架构

Neural_Network_Lab.utils.features

import

Neural_Network_Lab.utils.hypothesis

import

features_split[1](num_examples_1,

num_features_1)

dataset_1.shape(num_examples_2,

num_features_2)

normalize(polynomials)[0]return

polynomialsimport

sinusoid_degree):sin(x).num_examples

0))for

normalize(features):features_normalized

np.copy(features).astype(float)#

计算均值features_mean

防止除以0features_deviation[features_deviation

1features_normalized

normalize_data:(data_normalized,features_mean,features_deviation)

normalize(data_processed)data_processed

data_normalized#

generate_sinusoids(data_normalized,

np.concatenate((data_processed,

sinusoids),

generate_polynomials(data_normalized,

polynomial_degree,

np.concatenate((data_processed,

polynomials),

np.hstack((np.ones((num_examples,

1)),

初始化数据标签网络层次(用列表表示如三层[784,25,10]表示输入层784个神经元25个隐藏层神经元10个输出层神经元)数据是否标准化处理。

class

__init__(self,data,labels,layers,normalize_dataFalse):data_processed

prepare_for_training(data,normalize_datanormalize_data)[0]self.data

labelsself.layers

MultilayerPerceptron.thetas_init(layers)3、训练函数

输入迭代次数学习率进行梯度下降算法更新权重参数矩阵得到最终的权重参数矩阵和损失值。

矩阵不好进行更新操作可以把它拉成向量。

def

MultilayerPerceptron.thetas_unroll(self.thetas)(optimized_theta,

cost_history)

MultilayerPerceptron.gradient_descent(self.data,self.labels,unrolled_theta,self.layers,max_ietrations,alpha)self.thetas

MultilayerPerceptron.thetas_roll(optimized_theta,self.layers)return

4、权重参数矩阵初始化

初始值小#这里需要考虑偏置项偏置的个数与输出的个数一样thetas[layer_index]np.random.rand(out_count,in_count1)

0.05

thetas_unroll(thetas):#拼接成一个向量num_theta_layers

np.array([])for

range(num_theta_layers):unrolled_theta

np.hstack((unrolled_theta,thetas[theta_layer_index].flatten()))return

unrolled_theta

thetas_roll(unrolled_theta,layers):num_layers

len(layers)thetas

thetas_volumelayer_theta_unrolled

unrolled_theta[start_index:end_index]thetas[layer_index]

layer_theta_unrolled.reshape((thetas_height,thetas_width))unrolled_shift

unrolled_shift

feedforword_propagation(data,thetas,layers):num_layers

data.shape[0]in_layer_activation

data

thetas[layer_index]out_layer_activation

sigmoid(np.dot(in_layer_activation,theta.T))

#输出层#

np.hstack((np.ones((num_examples,1)),out_layer_activation))in_layer_activation

out_layer_activation#返回输出层结果,不要偏置项return

损失函数

cost_function(data,labels,thetas,layers):num_layers

MultilayerPerceptron.feedforword_propagation(data,thetas,layers)#制作标签每一个样本的标签都是one-dotbitwise_labels

np.zeros((num_examples,num_labels))for

example_index

range(num_examples):bitwise_labels[example_index][labels[example_index][0]]

np.sum(np.log(predictions[bitwise_labels

1]))bit_not_set_cost

(bit_set_costbit_not_set_cost)return

cost

在梯度下降的过程中要实现参数矩阵的更新必须要实现反向传播。

利用上述的公式进行运算即可得到。

staticmethoddef

back_propagation(data,labels,thetas,layers):num_layers

len(layers)(num_examples,num_features)

layers[-1]deltas

np.zeros((out_count,in_count1))

#25

range(num_examples):layers_inputs

{}layers_activations

data[example_index,:].reshape((num_features,1))layers_activations[0]

layer_index

np.dot(layer_theta,layers_activation)

第一次

np.vstack((np.array([[1]]),sigmoid(layer_input)))

#完成激活函数加上一个偏置参数layers_inputs[layer_index1]

layer_input

后一层计算结果layers_activations[layer_index

layers_activation

后一层完成激活的结果output_layer_activation

layers_activation[1:,:]#计算输出层和结果的差异delta

{}#标签处理bitwise_label

np.zeros((num_label_types,1))bitwise_label[labels[example_index][0]]

1#计算输出结果和真实值之间的差异delta[num_layers-1]

bitwise_label

layers_inputs[layer_index]layer_input

np.vstack((np.array((1)),layer_input))#按照公式计算delta[layer_index]

np.dot(layer_theta.T,next_delta)*sigmoid(layer_input)#过滤掉偏置参数delta[layer_index]

delta[layer_index][1:,:]#计算梯度值for

layer_index

range(num_layers-1):layer_delta

np.dot(delta[layer_index1],layers_activations[layer_index].T)

deltas[layer_index]

range(num_layers-1):deltas[layer_index]

deltas[layer_index]

gradient_step(data,labels,optimized_theta,layers):theta

MultilayerPerceptron.thetas_roll(optimized_theta,layers)#反向传播BPthetas_rolled_gradinets

MultilayerPerceptron.back_propagation(data,labels,theta,layers)thetas_unrolled_gradinets

MultilayerPerceptron.thetas_unroll(thetas_rolled_gradinets)return

实现梯度下降

gradient_descent(data,labels,unrolled_theta,layers,max_ietrations,alpha):#1.

计算损失值#2.

MultilayerPerceptron.cost_function(data,labels,MultilayerPerceptron.thetas_roll(optimized_theta,layers),layers)cost_history.append(cost)theta_gradient

MultilayerPerceptron.gradient_step(data,labels,optimized_theta,layers)optimized_theta

optimized_theta

predict(self,data):data_processed

prepare_for_training(data,normalize_data

self.normalize_data)[0]num_examples

data_processed.shape[0]predictions

MultilayerPerceptron.feedforword_propagation(data_processed,self.thetas,self.layers)return

np.argmax(predictions,axis1).reshape((num_examples,1))

四、完整代码

Neural_Network_Lab.utils.features

import

Neural_Network_Lab.utils.hypothesis

import

__init__(self,data,labels,layers,normalize_dataFalse):data_processed

prepare_for_training(data,normalize_datanormalize_data)[0]self.data

labelsself.layers

MultilayerPerceptron.thetas_init(layers)def

predict(self,data):data_processed

prepare_for_training(data,normalize_data

self.normalize_data)[0]num_examples

data_processed.shape[0]predictions

MultilayerPerceptron.feedforword_propagation(data_processed,self.thetas,self.layers)return

np.argmax(predictions,axis1).reshape((num_examples,1))def

1000,alpha

MultilayerPerceptron.thetas_unroll(self.thetas)(optimized_theta,

cost_history)

MultilayerPerceptron.gradient_descent(self.data,self.labels,unrolled_theta,self.layers,max_ietrations,alpha)self.thetas

MultilayerPerceptron.thetas_roll(optimized_theta,self.layers)return

self.thetas,cost_historystaticmethoddef

gradient_descent(data,labels,unrolled_theta,layers,max_ietrations,alpha):#1.

计算损失值#2.

MultilayerPerceptron.cost_function(data,labels,MultilayerPerceptron.thetas_roll(optimized_theta,layers),layers)cost_history.append(cost)theta_gradient

MultilayerPerceptron.gradient_step(data,labels,optimized_theta,layers)optimized_theta

optimized_theta

optimized_theta,cost_historystaticmethoddef

gradient_step(data,labels,optimized_theta,layers):theta

MultilayerPerceptron.thetas_roll(optimized_theta,layers)#反向传播BPthetas_rolled_gradinets

MultilayerPerceptron.back_propagation(data,labels,theta,layers)thetas_unrolled_gradinets

MultilayerPerceptron.thetas_unroll(thetas_rolled_gradinets)return

thetas_unrolled_gradinetsstaticmethoddef

back_propagation(data,labels,thetas,layers):num_layers

len(layers)(num_examples,num_features)

layers[-1]deltas

np.zeros((out_count,in_count1))

#25

range(num_examples):layers_inputs

{}layers_activations

data[example_index,:].reshape((num_features,1))layers_activations[0]

layer_index

np.dot(layer_theta,layers_activation)

第一次

np.vstack((np.array([[1]]),sigmoid(layer_input)))

#完成激活函数加上一个偏置参数layers_inputs[layer_index1]

layer_input

后一层计算结果layers_activations[layer_index

layers_activation

后一层完成激活的结果output_layer_activation

layers_activation[1:,:]#计算输出层和结果的差异delta

{}#标签处理bitwise_label

np.zeros((num_label_types,1))bitwise_label[labels[example_index][0]]

1#计算输出结果和真实值之间的差异delta[num_layers-1]

bitwise_label

layers_inputs[layer_index]layer_input

np.vstack((np.array((1)),layer_input))#按照公式计算delta[layer_index]

np.dot(layer_theta.T,next_delta)*sigmoid(layer_input)#过滤掉偏置参数delta[layer_index]

delta[layer_index][1:,:]#计算梯度值for

layer_index

range(num_layers-1):layer_delta

np.dot(delta[layer_index1],layers_activations[layer_index].T)

deltas[layer_index]

range(num_layers-1):deltas[layer_index]

deltas[layer_index]

cost_function(data,labels,thetas,layers):num_layers

MultilayerPerceptron.feedforword_propagation(data,thetas,layers)#制作标签每一个样本的标签都是one-dotbitwise_labels

np.zeros((num_examples,num_labels))for

example_index

range(num_examples):bitwise_labels[example_index][labels[example_index][0]]

np.sum(np.log(predictions[bitwise_labels

1]))bit_not_set_cost

(bit_set_costbit_not_set_cost)return

coststaticmethoddef

feedforword_propagation(data,thetas,layers):num_layers

data.shape[0]in_layer_activation

data

thetas[layer_index]out_layer_activation

sigmoid(np.dot(in_layer_activation,theta.T))

#输出层#

np.hstack((np.ones((num_examples,1)),out_layer_activation))in_layer_activation

out_layer_activation#返回输出层结果,不要偏置项return

in_layer_activation[:,1:]staticmethoddef

thetas_roll(unrolled_theta,layers):num_layers

len(layers)thetas

thetas_volumelayer_theta_unrolled

unrolled_theta[start_index:end_index]thetas[layer_index]

layer_theta_unrolled.reshape((thetas_height,thetas_width))unrolled_shift

unrolled_shift

thetas_unroll(thetas):#拼接成一个向量num_theta_layers

np.array([])for

range(num_theta_layers):unrolled_theta

np.hstack((unrolled_theta,thetas[theta_layer_index].flatten()))return

len(layers)thetas

初始值小#这里需要考虑偏置项偏置的个数与输出的个数一样thetas[layer_index]np.random.rand(out_count,in_count1)

0.05

共一万个样本第一列为标签值一列表示像素点的值共28*28共784个像素点。

import

Neural_Network_Lab.Multilayer_Perceptron

import

pd.read_csv(../Neural_Network_Lab/data/mnist-demo.csv)

#展示数据

math.ceil(math.sqrt(numbers_to_display))

for

range(numbers_to_display):digit

data[plot_index:plot_index1].valuesdigit_label

int(math.sqrt(digit_pixels.shape[0]))frame

digit_pixels.reshape((image_size,image_size))plt.subplot(num_cells,num_cells,plot_index1)plt.imshow(frame,cmap

plt.subplots_adjust(wspace0.5,hspace0.5)

plt.show()train_data

data.drop(train_data.index)train_data

train_data.values

test_data.valuesnum_training_examples

8000X_train

train_data[:num_training_examples,1:]

y_train

train_data[:num_training_examples,[0]]X_test

test_data[:,1:]

MultilayerPerceptron(X_train,y_train,layers,normalize_data)

multilayerperceptron.train(max_iteration,alpha)

plt.plot(range(len(cost_history)),cost_history)

plt.xlabel(Grident

multilayerperceptron.predict(X_train)

y_test_predictions

multilayerperceptron.predict(X_test)train_p

y_train)

print(测试集准确率,test_p)numbers_to_display

num_cells

math.ceil(math.sqrt(numbers_to_display))

for

range(numbers_to_display):digit_label

y_test[plot_index,0]digit_pixels

X_test[plot_index,:]predicted_label

y_test_predictions[plot_index][0]image_size

int(math.sqrt(digit_pixels.shape[0]))frame

digit_pixels.reshape((image_size,image_size))plt.subplot(num_cells,num_cells,plot_index1)color_map

Greens

color_map)plt.title(predicted_label)plt.tick_params(axisboth,whichboth,bottomFalse,leftFalse,labelbottomFalse)plt.subplots_adjust(wspace0.5,hspace0.5)

plt.show()

这里准确率不高读者可以自行调整参数改变迭代次数网络层次都可以哦。



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback