tf.abs()

tf.abs()就是求数值的绝对值,可以将多个数值传入list,统一求绝对值

import tensorflow as tf

x = tf.constant(-1)
y = tf.constant([-1 + 2j, -2])
sess = tf.Session()
print(sess.run(tf.abs(x))) #1
print(sess.run(tf.abs(y))) #[ 2.23606798,2.        ]
@tf.function def train_step(inp_SNR,noise,GS_flag,PS_flag,eq_flag,epsilon=1e-12): loss = 0 with tf.GradientTape() as tape: s_logits = logit_model(inp_SNR) s = s_model(s_logits) soft_bits = soft_bit_encoder(s) hard_bits = hard_decision_on_bit(soft_bits) enc = Trans_model_bit(hard_bits) bit_set = tf.math.mod(tf.bitwise.right_shift(tf.expand_dims(symbol_set,1), tf.range(bitlen)), 2) bit_set = tf.reverse(bit_set, axis = [-1]) constellation = Trans_model_bit(bit_set) constellation = tf.expand_dims(constellation, 0) p_s = tf.nn.softmax(s_logits) norm_factor= tf.math.rsqrt(tf.maximum(p_norm(p_s, constellation),epsilon)) norm_constellation = r2c(norm_factor) * constellation should_always_be_one = p_norm(p_s, norm_constellation) x = r2c(norm_factor) * enc Tx = upsample_pulse_shaping(x, Fs, PS_filter) Rx = Tx + noise y = Model_Eq(Rx) entropy_S = -p_norm(p_s, p_s, lambda x: log2(x)) GMI = GMIcal_tf(x,tf.squeeze(y),M,norm_constellation,hard_bits_out,p_s) NGMI = 1-(entropy_S-GMI)/bitlen loss_NGMI = tf.nn.relu(NGMI_th-NGMI) loss_Eq = tf.reduce_mean(tf.square(tf.abs(x-y))) loss = loss_Eq*eq_flag*0.5-GMI+loss_NGMI*100 variables = (logit_model.trainable_variables * PS_flag + s_model.trainable_variables + Trans_model_bit.trainable_variables*GS_flag + Model_Eq.trainable_variables*eq_flag) gradients = tape.gradient(loss, variables) optimizer.apply_gradients(zip(gradients, variables)) return loss,loss_Eq,NGMI,GMI,tf.reduce_mean(entropy_S),p_s,norm_constellation,x 增加一个约束条件,避免发射端生成的星座点之间的距离过近
08-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值