# 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)
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,
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