tensorflow中api使用之tf.clip_by_value的使用

本文详细介绍了TensorFlow中tf.clip_by_value函数的功能和使用方法,该函数能够有效地将张量中的数值限制在指定范围内,避免运算错误。通过实例展示了如何设置数值的上下限,以及如何在TensorFlow会话中运行该函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tf.clip_by_value(v,a,b) 
功能:可以将一个张量中的数值限制在一个范围之内。(可以避免一些运算错误) 
参数:(1)v:input数据(2)a、b是对数据的限制。 
当v小于a时,输出a; 
当v大于a小于b时,输出原值; 
当v大于b时,输出b; 
例子:

>>> import tensorflow as tf
>>>
>>> import numpy as np
>>>
>>> v = tf.constant([[1.0, 2.0, 4.0],[4.0, 5.0, 6.0]])
>>> result = tf.clip_by_value(v, 2.5, 4.5)
>>> with tf.Session() as sess:
...     print(sess.run(result))

结果: 
[[ 2.5 2.5 3. ] 
[ 4. 4.5 4.5]]

import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from carModel import CarEnvironment print("TensorFlow 版本:", tf.__version__) print("GPU 可用性:", tf.config.list_physical_devices('GPU')) # === 超参数 === EP_MAX = 1000 # 训练回合数 EP_LEN = 1800 # 每回合步长(与工况数据长度一致) GAMMA = 0.95 # 折扣因子 A_LR = 0.0001 # Actor学习率 C_LR = 0.0002 # Critic学习率 BATCH_SIZE = 128 # 训练批量大小 UPDATE_STEPS = 10 # 训练时,PPO的更新步数 EPSILON = 0.2 # PPO的裁剪系数 HIDDEN_UNITS = 128 # 隐藏层单元数 env = CarEnvironment() S_DIM = env.observation_space.shape[0] # 状态空间维度 A_DIM = env.action_space.shape[0] # 动作空间维度 A_BOUND = env.action_space.high # 动作边界 class PPOAgent: def __init__(self): # 配置GPU参数 config = tf.ConfigProto() config.gpu_options.allow_growth = True # 动态申请显存 config.gpu_options.visible_device_list = "0" # 使用第一个GPU self.sess = tf.Session(config=config) self._build_model() self.sess.run(tf.global_variables_initializer()) def _build_model(self): """ 建立 PPO 网络 """ # 1️⃣ **输入层** self.S = tf.placeholder(tf.float32, [None, S_DIM], 'state') self.A = tf.placeholder(tf.float32, [None, A_DIM], 'action') self.R = tf.placeholder(tf.float32, [None, 1], 'reward') self.advantage = tf.placeholder(tf.float32, [None, 1], 'advantage') # 2️⃣ **Critic(评估网络)** with tf.variable_scope('Critic'): c_hidden = tf.layers.dense(self.S, HIDDEN_UNITS, tf.nn.relu) self.v = tf.layers.dense(c_hidden, 1) self.critic_loss = tf.reduce_mean(tf.square(self.R - self.v)) self.critic_train_op = tf.train.AdamOptimizer(C_LR).minimize(self.critic_loss) # 3️⃣ **Actor(策略网络)** pi, pi_params = self._build_actor('pi', trainable=True) # 当前策略 oldpi, oldpi_params = self._build_actor('oldpi', trainable=False) # 旧策略
最新发布
03-12
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

andeyeluguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值