2016-12-08 12 views
-1

Es gibt sehr hilfreiche Methode in Matlab namens "getwb()". Für Entwickler, die neuronales Netzwerk codieren, gibt diese Methode die Gewichte und Verzerrungen bei der letzten Iteration zurück. Ich habe ein neuronales Netzwerk (mit Tensorflow-Tools). Es ist möglich, diese Methode in irgendeiner Weise zu konvertieren?Konvertieren Matlab-Methode zu Python

Ich habe viel mit TensorFlow.saver() und Restore() versucht, aber ich verstehe nicht wirklich dieses Problem.

danke!

EDIT: mein Modell ist:

def neuralNetworkModel(x): 
    # first step: (input * weights) + bias, linear operation like y = ax + b 
    # each layer connection to other layer will represent by nodes(i) * nodes(i+1) 

    for i in range(0,numberOfLayers): 
    if i == 0: 
     hiddenLayers.append({"weights": tensorFlow.Variable(tensorFlow.random_normal([sizeOfRow, nodesLayer[i]])), 
         "biases": tensorFlow.Variable(tensorFlow.random_normal([nodesLayer[i]]))}) 

    elif i > 0 and i < numberOfLayers-1: 
     hiddenLayers.append({"weights" : tensorFlow.Variable(tensorFlow.random_normal([nodesLayer[i], nodesLayer[i+1]])), 
        "biases" : tensorFlow.Variable(tensorFlow.random_normal([nodesLayer[i+1]]))}) 
    else: 
     outputLayer = {"weights": tensorFlow.Variable(tensorFlow.random_normal([nodesLayer[i], classes])), 
        "biases": tensorFlow.Variable(tensorFlow.random_normal([classes]))} 


    # create the layers 
    for i in range(numberOfLayers): 
    if i == 0: 
     layers.append(tensorFlow.add(tensorFlow.matmul(x, hiddenLayers[i]["weights"]), hiddenLayers[i]["biases"])) 
     layers.append(tensorFlow.nn.relu(layers[i])) # pass values to activation function (i.e sigmoid, softmax) and add it to the layer 

    elif i >0 and i < numberOfLayers-1: 
     layers.append(tensorFlow.add(tensorFlow.matmul(layers[i-1], hiddenLayers[i]["weights"]), hiddenLayers[i]["biases"])) 
     layers.append(tensorFlow.nn.relu(layers[i])) 

    output = tensorFlow.matmul(layers[numberOfLayers-1], outputLayer["weights"]) + outputLayer["biases"] 
    finalOutput = output 
    return output 
+1

Fügen Sie einige Details und Code hinzu: Welches Modell trainieren Sie? wie machst du das? Was hast du versucht und wie es nicht funktioniert hat? –

+0

danke, ich habe meinen Beitrag aktualisiert. –

Antwort

0

In Ihrem Code Sie eine Reihe von Variablen für Gewichte und Voreingenommenheit von versteckten und Ausgangsschichten erstellen. Sie sollten in der Lage sein, sie jederzeit abgerufen werden (wenn eine Sitzung aktiv ist) durch tf.Session.run mit() wie folgt:

import tensorflow as tf 

tf.reset_default_graph() 

v = tf.Variable(tf.random_normal((5, 5))) 

init = tf.initialize_all_variables() 

with tf.Session() as sess: 
    sess.run(init) 
    v_val = sess.run(v) 
    print v_val 

Ich rate auch tf.learn Bibliothek zu verwenden, die nützliche Abstraktionen enthält wie fully_connected Schicht.