SEO技术

SEO技术

Products

当前位置:首页 > SEO技术 >

如何优化上海市交通建设工程安全质量监督站网站的SEO,以提升整站的搜索引擎排名?

96SEO 2026-02-19 11:58 0


-16网络框架

#pathlib提供了一个面向对象的接口来处理文件系统路径。

如何优化上海市交通建设工程安全质量监督站网站的SEO,以提升整站的搜索引擎排名?

路径被表示为Path对象可以调用方法来进行各种文件和目录操作。

import

#keras作为高层神经网络API已被集成进tensorflow使得训练更方便简单

from

#layers提供了神经网络的基本构建块比如全连接层、卷积层、池化层等

#提供了构建和训练神经网络模型的功能包括顺序模型Sequential和函数式模型Functional

API

#导入两个重要的回调函数前者用于训练期间保存模型最佳版本后者监测到模型性能不再提升时提前停止训练避免过拟合

from

EarlyStoppingtf.__version__2.17.0由于本人没有GPU了该部分跳过↓

gpus

tf.config.list_physical_devices(GPU)#

如果有GPU,即列表不为空

内存增长策略。

开启这个选项可以让tf按需分配gpu内存而不是一次性分配所有可用内存。

tf.config.experimental.set_memory_growth(gpu0,

True)#设置tf只使用指定的gpu(gpu[0])tf.config.set_visible_devices([gpu0],GPU)gpus2.导入数据

from

(list(data_dir.glob(*/*.png)))print(图片总数,

image_count)图片总数

list(data_dir.glob(Green/*.png))

imagePIL.Image.open(str(ex[8]))

#查看图像属性

224关于image_dataset_from_directory()的详细介绍可以参考文章https://mtyjkh.blog.csdn.net/article/details/117018789tr_ds

tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split0.2,#指定数据集中分割出多少比例数据当作验证集0.1表示10%数据会被用来当验证集subsettraining,#指定是用于训练还是验证的数据子集这里设定为trainingseed123,#用于设置随机数种子以确保数据集划分的可重复性和一致性image_size(img_height,

img_width),batch_sizebatch_size)Found

1200

tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split

0.2,subset

123,image_size(img_height,img_width),batch_sizebatch_size

)Found

可以通过class_names输出数据集的标签。

标签将按字母顺序对应于目录名称

class_names[Dark,

#数据增强---参考博客https://blog.csdn.net/afive54/article/details/135004174#

def

tf.image.random_flip_up_down(image)

随机水平翻转

tf.image.random_flip_left_right(image)

image

tf.image.random_contrast(image,

lower0.1,

tf.image.random_brightness(image,

max_delta0.2)

tf.image.random_saturation(image,

lower0.1,

tf.random.normal(tf.shape(image),

mean0.0,

1)plt.imshow(images[i].numpy().astype(uint8))plt.title(class_names[labels[i]])plt.axis(off)

for

tr_ds:print(image_batch.shape)print(labels_batch.shape)break#(32,

224,

#自动调整并行度自动决定并行处理数据的最佳线程数以最大化数据吞吐量。

#减少等待时间通过优化数据加载和预处理减少模型训练时等待数据的时间。

#简化代码不需要手动调整参数代码更简洁且易于维护。

#使用cache()方法将训练集缓存到内存中这样加快数据加载速度

#当多次迭代训练数据时可以重复使用已经加载到内存的数据而不必重新从磁盘加载

#使用shuffle()对训练数据集进行洗牌操作打乱数据集中的样本顺序

#prefetch()预取数据节约在训练过程中数据加载时间tr_ds

tr_ds.cache().shuffle(1000).prefetch(buffer_sizeAUTOTUNE)

val_ds

val_ds.cache().prefetch(buffer_sizeAUTOTUNE)normalization_layer

tr_ds.map(lambda

创新VGGNet的创新在于采用了相对简单的卷积层堆叠的结构其中使用了多个小卷积核(3*3)来替代较大的卷积核。

这种结构使网络更深同时参数共享更多有助于提取丰富的特征。

优点相对简单而易于理解的网络结构。

良好的性能在图像分类任务中得到了验证。

网络结构可提取更丰富的特征信息缺点参数量较大网络结构比较深需要消耗大量计算资源和时间来训练。

网络结构比较复杂容易出现梯度消失或爆炸等问题相对于一些后续的模型不够高效。

网络结构如下图

paddingsame,nameblock1_conv1)(input_tensor)x

Conv2D(64,

paddingsame,nameblock1_conv2)(x)x

MaxPooling2D((2,2),

paddingsame,nameblock2_conv1)(x)x

Conv2D(128,

paddingsame,nameblock2_conv2)(x)x

MaxPooling2D((2,2),

paddingsame,nameblock3_conv1)(x)x

Conv2D(256,

paddingsame,nameblock3_conv2)(x)x

Conv2D(256,

paddingsame,nameblock3_conv3)(x)x

MaxPooling2D((2,2),

paddingsame,nameblock4_conv1)(x)x

Conv2D(512,

paddingsame,nameblock4_conv2)(x)x

Conv2D(512,

paddingsame,nameblock4_conv3)(x)x

MaxPooling2D((2,2),

paddingsame,nameblock5_conv1)(x)x

Conv2D(512,

paddingsame,nameblock5_conv2)(x)x

Conv2D(512,

paddingsame,nameblock5_conv3)(x)x

MaxPooling2D((2,2),

functional┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓

Layer

┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩

input_layer

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block1_conv1

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block1_conv2

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block1_pool

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block2_conv1

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block2_conv2

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block2_pool

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block3_conv1

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block3_conv2

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block3_conv3

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block3_pool

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block4_conv1

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block4_conv2

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block4_conv3

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block4_pool

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block5_conv1

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block5_conv2

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block5_conv3

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

block5_pool

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

flatten

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

fc1

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

fc2

├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤

predictions

└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘Total

params:

#调用-去除顶层自定义全连接层加imagenet权重参数冻结conv,加BN和dropout

from

VGG16(weightsimagenet,include_topFalse,input_shape(img_height,

img_width,

Trueprint(layer)else:set_trainable

Falselayer.trainable

print(base_model.summary(),end\n)#

model

models.Sequential([base_model,#layers.GlobalAveragePooling2D(),#layers.GlobalMaxPooling2D(),layers.Flatten(),layers.Dense(1024,

activationrelu),layers.BatchNormalization(),layers.Dropout(0.4),layers.Dense(128,

activation

relu),layers.BatchNormalization(),layers.Dropout(0.4),layers.Dense(len(class_names),

activationsoftmax)

model.load_weights(/content/drive/Othercomputers/My

laptop/jupyter

notebook/xunlianying/vgg16_1_final.weights.h5)四、编译模型

在准备对模型进行训练之前还需要再对其进行一些设置。

以下内容是在模型的编译步骤中添加的

损失函数loss用于衡量模型在训练期间的准确率。

优化器optimizer决定模型如何根据其看到的数据和自身的损失函数进行更新。

指标metrics用于监控训练和测试步骤。

以下示例使用了准确率即被正确分类的图像的比率。

#本次使用代码

tf.keras.optimizers.schedules.ExponentialDecay(initial_learning_rate,decay_steps30,decay_rate0.92,staircaseTrue)#

将指数衰减学习率送入优化器

tf.keras.optimizers.Adam(learning_ratelr_schedule)model.compile(optimizeroptimizer,losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[accuracy])#Adam优化器是一种常用的梯度下降优化算法用于更新模型的权重以最小化训练过程中的损失函数

epochs

ModelCheckpoint(/content/drive/My

Drive/Colab

notebook/xunlianying/T7_shou1.weights.h5,monitorval_accuracy,verbose1,mode

max,save_best_onlyTrue,save_weights_onlyTrue)#

设置早停

EarlyStopping(monitorval_accuracy,min_delta0.0001,patience5,mode

max,verbose1)history

model.fit(tr_ds,validation_dataval_ds,epochsepochs,callbacks[checkpointer,

六、模型评估

history.history[val_accuracy]loss

val_loss

history.history[val_loss]epochs_range

range(epochs)plt.figure(figsize(12,

4))

model.load_weights(/content/drive/My

Drive/Colab

notebook/xunlianying/T7_shou1.weights.h5)

from

Image.open(/content/drive/MyDrive/Colab

Notebooks/jupyter

print(预测结果为,class_names[np.argmax(predictions)])

八、暂时总结

由于没有GPU算力嘞cpu跑得一天。

慢慢来吧最近也好忙慢慢学抽空去补点基础知识了。

后续模型调整再跑什么的感觉得好久了。

每次调整优化其实也很耗时



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