tf1.x产出模型小例子

该博客展示了如何在 TensorFlow 中使用 `tf.add_n` 进行元素级加法操作,并记录运行时信息。通过创建常量和变量,然后将它们传递给 `add_n` 函数,实现张量的相加。同时,利用 `tf.Session` 运行图并使用 `tf.summary.FileWriter` 记录会话图和运行元数据。
部署运行你感兴趣的模型镜像
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

a = tf.constant([10.0, 20.0, 40.0], name='a')
b = tf.Variable(tf.random_uniform([3]), name='b')  # 从均匀分布中输出随机值,[3]代表张量尺寸
output = tf.add_n([a, b], name='add')  # Add all input tensors element wise

with tf.Session() as sess:
    writer = tf.summary.FileWriter('../log', sess.graph)

    # tf.RunOptions.FULL_TRACE代表所有的信息
    run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
    # 运行时记录运行信息的proto,pb是用来序列化数据的
    run_metadata = tf.RunMetadata()

    sess.run(tf.global_variables_initializer())
    f = sess.run(output, options=run_options, run_metadata=run_metadata)
    print(f)

    writer.add_run_metadata(run_metadata, 'metadata')
    writer.close()
    pass

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

### 大模型的自主迭代方法和技术 大模型的自主迭代涉及多个层面的技术和方法,主要包括以下几个方面: #### 1. 增量学习 增量学习是一种让模型能够持续从新数据中学习而不遗忘已有知识的方法。对于大规模模型而言,这种方法尤为重要,因为它可以避免重新训练整个模型所带来的高昂计算成本。通过部分更新模型参数的方式,可以让模型适应新的分布或任务。 在 Python 中,`sklearn` 提供了 `partial_fit` 接口来支持传统的机器学习算法进行增量学习[^4]。而在深度学习框架如 TensorFlow 和 PyTorch 中,则可以通过加载预训练模型并继续在其基础上微调的方式来实现类似的机制。例如,在 TensorFlow Keras 中,可以使用以下代码片段完成这一过程: ```python import tensorflow as tf model_path = 'pretrained_model.h5' loaded_model = tf.keras.models.load_model(model_path) # 使用新数据集进一步训练模型 history = loaded_model.fit(train_data_generator, epochs=num_epochs) ``` #### 2. 参数高效微调 (Parameter-Efficient Fine-Tuning, PFT) 随着模型规模的增长,全量微调变得越来越昂贵。为此,研究者提出了多种参数高效的微调方案,比如 LoRA(Low-Rank Adaptation)、Prefix Tuning 等。这些方法仅需优化一小部分新增加或者修改后的参数即可达到接近甚至超越传统全量微调的效果。 LoRA 的核心思想是在原有权重矩阵 W 上引入低秩分解 ΔW=AB ,其中 A,B 是两个较小维度的矩阵。这样既保留了大部分原始结构又允许灵活调整特定方向上的表达能力[^3]。 #### 3. 迁移学习与多任务联合训练 迁移学习使得我们可以利用源域的知识帮助目标域的学习;而当面临多个相关联的任务时,采用共享表示空间或多头架构的设计思路则构成了所谓的「多任务学习」范式。这两种策略都能有效缓解标注稀缺问题,并促进泛化性能提升。 具体来说,如果存在相似但不完全相同的下游应用场景,则可以从通用基础模型出发分别定制各自的适配层;而对于那些具有内在联系的不同子问题集合,则可通过构建统一框架下的不同分支路径共同作用于同一个主干网络之上从而获得更好的整体表现[^1]。 #### 4. 自动超参数调节(AutoML) 为了找到最优解空间内的配置组合以最大化最终产出质量,自动化的搜索流程不可或缺。贝叶斯优化、进化算法以及强化学习等都是当前比较流行的探索手段之一 。此外还有专门针对神经架构设计自动化工具Neural Architecture Search(NAS),它能够在给定约束条件下寻找最佳拓扑连接关系及其对应的操作类型列表[^5]。 --- ### 示例代码:基于TensorFlow的简易自定义回调函数实现动态学习率调度器 下面展示了一个简单的例子说明如何创建一个可以根据验证集误差变化情况实时调整当前轮次所使用的实际步长大小的类对象实例。 ```python class CustomLearningRateScheduler(tf.keras.callbacks.Callback): def __init__(self, initial_lr=0.01, factor=0.1, patience=5): super(CustomLearningRateScheduler, self).__init__() self.initial_lr = initial_lr self.factor = factor self.patience = patience self.wait = 0 def on_epoch_end(self, epoch, logs=None): current_loss = logs.get('val_loss') if self.previous_best is None or current_loss < self.previous_best: self.previous_best = current_loss self.wait = 0 else: self.wait += 1 if self.wait >= self.patience: new_lr = max(self.model.optimizer.lr * self.factor, 1e-8) print(f'\nEpoch {epoch+1}: Reducing learning rate to {new_lr}.') self.model.optimizer.lr.assign(new_lr) self.wait = 0 custom_scheduler = CustomLearningRateScheduler() callbacks_list = [custom_scheduler] # Compile and fit the model with our custom scheduler callback included. model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) history = model.fit(x_train, y_train, validation_split=0.2, callbacks=callbacks_list, epochs=20) ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值