96SEO 2026-02-20 06:15 19
所有的输入样本必须都是相同shape文本长度词向量维度等tf.data.Dataset.from_tensor_slices(tensor)将tensor沿其第一个维度切片返回一个含有N个样本的数据集这样做的问题就是需要将整个数据集整体传入然后切片建立数据集类对象比较占内存。

tf.data.Dataset.from_generator(data_generator,output_data_type,output_data_shape)从一个生成器中不断读取样本
y定义一个生成器函数传进来读数据的路径、和一些有限制的参数params
在是一个字典它包含了最大序列长度max_len、词到索引的映射word2idx等关键信息打开文件打印文件路径遍历每行数据获取标签和文本文本按照空格分离出单词获取当前句子的所有词对应的索引for
text取出这个句子的每一个单词[params[‘word2idx’]取出params中对应的word2idx字典.get(w,
len(word2idx))从word2idx字典中取出该单词对应的索引如果有这个索引则返回这个索引如果没有则返回len(word2idx)作为索引这个索引表示unknow如果当前句子大于预设的最大句子长度进行截断操作如果小于补充0标签从str转换为int类型yield
不会退出函数而是将函数暂时挂起保存当前的状态当生成器再次被调用时函数会从上次
的函数可以在处理大数据集时节省内存因为它允许逐个生成和处理数据而不是一次性加载整个数据集到内存中
tf.data.Dataset.from_generator(lambda:
data_generator(params[train_path],
ds.shuffle(params[num_samples])ds
ds.prefetch(tf.data.experimental.AUTOTUNE)else:ds
tf.data.Dataset.from_generator(lambda:
data_generator(params[test_path],
ds.prefetch(tf.data.experimental.AUTOTUNE)return
ds定义一个制作数据集的函数is_training表示是否是训练这个函数在验证和测试也会使用训练的时候设置为True验证和测试为False当前shape值1是否在训练如果是构建一个Dataset传进我们刚刚定义的生成器函数并且传进实际的路径和配置参数输出的shape值输出的类型指定shuffle指定
batch_size设置缓存序列根据可用的CPU动态设置并行调用的数量说白了就是加速如果不是在训练则验证和测试不同的就是路径不同以及没有shuffle操作其他都一样最后把做好的Datasets返回回去
拿到一个英文句子通过查语料表将句子变成一组索引通过词嵌入表结合索引将每个单词都变成一组向量一条句子就变成了一个矩阵这就是特征了
BiLSTM即双向LSTM就是在原本的LSTM增加了一个从后往前走的模块这样前向和反向两个方向都各自生成了一组特征把两个特征拼接起来得到一组新的特征得到翻倍的特征。
其他前面和后续的处理操作都是一样的。
params):super().__init__()self.embedding
tf.Variable(np.load(./vocab/word.npy),
tf.keras.layers.Dropout(params[dropout_rate])self.drop2
tf.keras.layers.Dropout(params[dropout_rate])self.drop3
tf.keras.layers.Dropout(params[dropout_rate])self.rnn1
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(params[rnn_units],
return_sequencesTrue))self.rnn2
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(params[rnn_units],
return_sequencesTrue))self.rnn3
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(params[rnn_units],
return_sequencesFalse))self.drop_fc
tf.keras.layers.Dropout(params[dropout_rate])self.fc
tf.keras.layers.Dense(2*params[rnn_units],
tf.nn.embedding_lookup(self.embedding,
x自定义一个模型继承tf.keras.Model模块初始化函数初始化词嵌入把之前保存好的词嵌入文件向量读进来定义一层dropout1定义一层dropout2定义一层dropout3定义一个rnn1rnn_units表示得到多少维的特征return_sequences表示是返回一个序列还是最后一个输出定义一个rnn2最后一层的rnn肯定只需要最后一个输出前后两个rnn的堆叠肯定需要返回一个序列定义一个rnn3
tf.keras.layers.LSTM()直接就可以定义一个LSTM在外面再封装一层APItf.keras.layers.Bidirectional就实现了双向LSTM定义全连接层的dropout定义一个全连接层因为是双向的这里就需要把参数乘以2定义最后输出的全连接层只需要得到是正例还是负例所以是2定义前向传播函数传进来一个batch的数据和是否是在训练如果输入数据不是tf.int32类型转换成tf.int32类型取出batch_size设置LSTM神经元个数双向乘以2使用
层数据通过第3个rnn经过全连接层对应的Dropout数据通过一个全连接层最后数据通过一个输出层返回最终的模型输出
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback