def createLayer(index, numOfOutput):
    training_data = np.array(Datasplit[index], dtype=np.float32)
    training_label = np.array(DatasplitLabel[index], dtype=np.float32)
    test_data = np.array(Datatest[index], dtype=np.float32)
    test_label = np.array(DatatestLabel[index], dtype=np.float32)

    autoencoder = AutoEncoder(numOfOutput=numOfOutput, epochs=10)
    decoder_op, layer_1 = autoencoder.initial_autoencode_network('encoder_h1', 'encoder_b1', 'decoder_h1', 'decoder_b1',
                                                                 autoencoder._X)
    autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label, autoencoder._X)
    decoder_op, layer_2 = autoencoder.initial_autoencode_network('encoder_h2', 'encoder_b2', 'decoder_h2', 'decoder_b2',
                                                                 layer_1)
    autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label, layer_1)
    decoder_op, layer_3 = autoencoder.initial_autoencode_network('encoder_h3', 'encoder_b3', 'decoder_h3', 'decoder_b3',
                                                                 layer_2)
    autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label, layer_2)
    y_ = autoencoder.initial_mlp_network()
    with tf.device('/cpu:0'):
      training_label_onehot = sess.run(
            tf.one_hot(indices=training_label, depth=numOfOutput, dtype=np.float64))
      test_label_onehot = sess.run(
            tf.one_hot(indices=test_label, depth=numOfOutput, dtype=np.float64))
    cnn_accuricy, cnn_predict_label = autoencoder.calculate_session(y_, training_data, training_label_onehot, test_data,
                                                             test_label_onehot)
    print(cnn_accuricy)
    return cnn_accuricy
Esempio n. 2
0
with tf.device('/cpu:0'):
    # One hot encoding
    training_label = sess.run(
        tf.one_hot(indices=training_label,
                   depth=max(training_label + 1),
                   dtype=np.float64))
    test_label = sess.run(
        tf.one_hot(indices=test_label,
                   depth=max(test_label + 1),
                   dtype=np.float64))

autoencoder = AutoEncoder()
decoder_op, layer_1 = autoencoder.initial_autoencode_network(
    'encoder_h1', 'encoder_b1', 'decoder_h1', 'decoder_b1', autoencoder._X)
autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label,
                                  autoencoder._X)
decoder_op, layer_2 = autoencoder.initial_autoencode_network(
    'encoder_h2', 'encoder_b2', 'decoder_h2', 'decoder_b2', layer_1)
autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label,
                                  layer_1)
decoder_op, layer_3 = autoencoder.initial_autoencode_network(
    'encoder_h3', 'encoder_b3', 'decoder_h3', 'decoder_b3', layer_2)
autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label,
                                  layer_2)

y_ = autoencoder.initial_mlp_network()
cnn_accuricy, cnn_predict_label = autoencoder.calculate_session(
    y_, training_data, training_label, test_data, test_label)
print(cnn_accuricy)
test_label_split = patitioning(test_label)

with tf.device('/cpu:0'):
 training_label_onehot, test_label_onehot = one_hot_labeles(training_label_split, max(training_label_split + 1),
                                                           test_label_split, max(test_label_split + 1))

autoencoder = AutoEncoder(numOfOutput=7, epochs=15)
decoder_op, layer_1 = autoencoder.initial_autoencode_network('encoder_h1', 'encoder_b1', 'decoder_h1', 'decoder_b1',autoencoder._X)
autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label, autoencoder._X)
decoder_op, layer_2 = autoencoder.initial_autoencode_network('encoder_h2', 'encoder_b2', 'decoder_h2', 'decoder_b2',layer_1)
autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label, layer_1)
decoder_op, layer_3 = autoencoder.initial_autoencode_network('encoder_h3', 'encoder_b3', 'decoder_h3', 'decoder_b3',layer_2)
autoencoder.calculate_AutoEncoder(decoder_op, training_data, training_label, layer_2)

y_ = autoencoder.initial_mlp_network()
autoencoder_accuricy, autoencoder_predict_label  = autoencoder.calculate_session(y_, training_data, training_label_onehot, test_data, test_label_onehot)
print(autoencoder_accuricy)
# split data and result for next layouts
Datasplit = splitData(training_data, training_label_split)
Datatest = splitData(test_data, autoencoder_predict_label)
DatasplitLabel = splitLabel(training_label, training_label_split)
DatatestLabel = splitLabel(test_label, autoencoder_predict_label)

print("Calculate layer2")
res1 = createLayer(0,4)
res2 = createLayer(1,6)
res3 = createLayer(2,6)
res4 = createLayer(3,4)
res5 = createLayer(4,2)
res6 = createLayer(5,2)
res7=createLayer(6, 12)