Example #1
0
    # tf.global_variables_initializer().run()  # 初始化
    # summary_writer.add_graph(sess.graph)  # 写入变量图
    ber_wrong_number = []
    # saver = tf.train.Saver(max_to_keep=4)
    saver = tf.train.import_meta_graph('t/modulate-model-900.meta')
    x = tf.get_default_graph().get_operation_by_name('x_input').outputs[0]
    final_value = tf.get_default_graph().get_operation_by_name(
        'final_value').outputs[0]
    y_ber = tf.get_default_graph().get_operation_by_name(
        'y-input-for-ber').outputs[0]
    ber = tf.reduce_mean(tf.abs(final_value - y_ber))

    for i in SNR:
        Y = generate_data.generate_bit([TRAIN_NUM,
                                        OUTPUT_NODE])  # 让数据的0和1的概率都相同
        X = encode.encode2d(Y)  # TRAIN_NUM , OUTPUT_NODE / 2 , 2
        Y_one_hot = encode.encode2d_onehot(Y)  # 单热码用于验证数据
        E_x = 10**(0.1 * i)  # 信号能量
        noise = np.random.randn(TRAIN_NUM, INPUT_NODE, 2)  # sigma * r + mu
        X = X * E_x + noise
        # saver=tf.train.import_meta_graph('t/modulate-model-900.meta')
        saver.restore(sess, tf.train.latest_checkpoint('t/'))

        ber_loss = sess.run(ber, feed_dict={x: X, y_ber: Y})

        ber_wrong_number.append(ber_loss)

        all_wrong = np.sum(ber_wrong_number, axis=0)  #axis=1 是按行求和

        print('ber为%f' % (ber_loss))
        # saver.save(sess,'t/modulate-model',global_step=i)
Example #2
0
LEARNING_RATE_BASE = 0.01  # 模型基础学习速率
LEARNING_RATE_DECAY = 0.99  # 学习衰减速度
BATCH_SIZE = 200  # 一批数据量
TRAIN_NUM = 20000  # 数据总量
MOVING_AVERAGE_DECAY = 0.99  # 滑动平均衰减
TRAINING_STEPS = 500  # 训练多少次

SNR = 5  # 信噪比

E_x = 10**(0.1 * SNR)  # 信号能量

# 生成数据
Y = np.random.randint(0, 2, [TRAIN_NUM, OUTPUT_NODE]).astype('float32')

X = encode.encode2d(Y)  # TRAIN_NUM , OUTPUT_NODE / 2 , 2

# 验证数据
Y_vaildate = np.random.randint(0, 2,
                               [TRAIN_NUM, OUTPUT_NODE]).astype('float32')

X_validate = encode.encode2d(Y)  # TRAIN_NUM , OUTPUT_NODE / 2 , 2

# 定义整个模型的x和y
x = tf.placeholder(tf.float32, [None, INPUT_NODE, 2], name='x_input')

y_ = tf.placeholder(tf.float32, [None, OUTPUT_NODE], name='y-input')
"""
# 发射机通过DNN输出的数据
# dnn_interface(input_tensor, output_shape, regularizer_rate=None, drop=None)
sent_data = DNN_interface.dnn_interface(input_tensor=x,
Example #3
0
LEARNING_RATE_BASE = 0.01  # 模型基础学习速率
LEARNING_RATE_DECAY = 0.99  # 学习衰减速度
BATCH_SIZE = 100  # 一批数据量
TRAIN_NUM = 2000  # 数据总量
MOVING_AVERAGE_DECAY = 0.99  # 滑动平均衰减
TRAINING_STEPS = 1000  # 训练多少次

SNR = -2  # 信噪比

E_x = 10**(0.1 * SNR)  # 信号能量

# 生成数据
Y = generate_data.generate_bit([TRAIN_NUM, OUTPUT_NODE])  # 让数据的0和1的概率都相同

X = encode.encode2d(Y).reshape(-1,
                               INPUT_NODE)  # TRAIN_NUM , OUTPUT_NODE / 2 , 2

X_onehot = encode.encode2d_onehot(Y)

# 验证数据
Y_vaildate = generate_data.generate_bit([TRAIN_NUM, OUTPUT_NODE])

X_validate = encode.encode2d(Y).reshape(
    -1, INPUT_NODE)  # TRAIN_NUM , OUTPUT_NODE / 2 , 2

X_validate_onehot = encode.encode2d_onehot(Y)

# 加噪声
X_shape = X.shape
noise = np.random.randn(X_shape[0], X_shape[1])  # sigma * r + mu
X = X * E_x + noise