2016-12-08 6 views
-1

matlabには "getwb()"という非常に便利なメソッドがあります。 ニューラルネットワークをコーディングする開発者にとって、このメソッドは最後の反復で重みとバイアスを返します。 私はニューラルネットワークを持っています(テンソルフローツールを使用しています)。 この方法を何らかの方法で変換することは可能ですか?matlabのメソッドをPythonに変換する

私はtensorFlow.saver()とrestore()でたくさん試しましたが、実際にこの問題を理解していません。

ありがとうございました!

EDIT: 私のモデルは次のとおりです。あなたのコードで

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

いくつかの詳細とコードを追加することを検討してください。どのモデルをトレーニングしますか?どうやってやるの?何をしようとしましたか、どうしてうまくいかなかったのですか? –

+0

ありがとう、私は私の投稿を更新しました。 –

答えて

0

あなたは隠され、出力層の重みとバイアスのための変数の束を作成します。あなたは、次のように)((セッションがアクティブな場合)tf.Session.runを使用して、任意の時点でそれらを取得することができるはずです。

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 

私はまた、のような便利な抽象化が含まれているtf.learnライブラリを使用することをお勧めfully_connected層。

関連する問題