Variable not found when using a Tensorflow session in another function












0














I am creating a Flask app and I want to restore a tensorflow session with it's variables only once and use it on various routes to make predictions but it doesn't seem to work.I created a class whose constructor restores the interactive session and it's variables,the class also contains a function named predict which tries to predict the outcome using the interactive session described in the constructor.The following code is how i initialize the object to be shared among all routes.



class MyServer(Flask):
def __init__(self, *args, **kwargs):
super(MyServer, self).__init__(*args, **kwargs)
self.testClass=TestClass()
app = MyServer(__name__)


Here is an example of the route I used



@app.route('/')
def index():
size_dict=app.testClass.test(saveName)
return jsonify(size_dict)


But this throws the following error



ValueError: Variable Net_WT/block1/bn does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=tf.AUTO_REUSE in VarScope?


But if I initialize the object and use it in the same route it works










share|improve this question
























  • How are you serving the app?
    – Sergei Lebedev
    Dec 27 '18 at 15:57
















0














I am creating a Flask app and I want to restore a tensorflow session with it's variables only once and use it on various routes to make predictions but it doesn't seem to work.I created a class whose constructor restores the interactive session and it's variables,the class also contains a function named predict which tries to predict the outcome using the interactive session described in the constructor.The following code is how i initialize the object to be shared among all routes.



class MyServer(Flask):
def __init__(self, *args, **kwargs):
super(MyServer, self).__init__(*args, **kwargs)
self.testClass=TestClass()
app = MyServer(__name__)


Here is an example of the route I used



@app.route('/')
def index():
size_dict=app.testClass.test(saveName)
return jsonify(size_dict)


But this throws the following error



ValueError: Variable Net_WT/block1/bn does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=tf.AUTO_REUSE in VarScope?


But if I initialize the object and use it in the same route it works










share|improve this question
























  • How are you serving the app?
    – Sergei Lebedev
    Dec 27 '18 at 15:57














0












0








0







I am creating a Flask app and I want to restore a tensorflow session with it's variables only once and use it on various routes to make predictions but it doesn't seem to work.I created a class whose constructor restores the interactive session and it's variables,the class also contains a function named predict which tries to predict the outcome using the interactive session described in the constructor.The following code is how i initialize the object to be shared among all routes.



class MyServer(Flask):
def __init__(self, *args, **kwargs):
super(MyServer, self).__init__(*args, **kwargs)
self.testClass=TestClass()
app = MyServer(__name__)


Here is an example of the route I used



@app.route('/')
def index():
size_dict=app.testClass.test(saveName)
return jsonify(size_dict)


But this throws the following error



ValueError: Variable Net_WT/block1/bn does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=tf.AUTO_REUSE in VarScope?


But if I initialize the object and use it in the same route it works










share|improve this question















I am creating a Flask app and I want to restore a tensorflow session with it's variables only once and use it on various routes to make predictions but it doesn't seem to work.I created a class whose constructor restores the interactive session and it's variables,the class also contains a function named predict which tries to predict the outcome using the interactive session described in the constructor.The following code is how i initialize the object to be shared among all routes.



class MyServer(Flask):
def __init__(self, *args, **kwargs):
super(MyServer, self).__init__(*args, **kwargs)
self.testClass=TestClass()
app = MyServer(__name__)


Here is an example of the route I used



@app.route('/')
def index():
size_dict=app.testClass.test(saveName)
return jsonify(size_dict)


But this throws the following error



ValueError: Variable Net_WT/block1/bn does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=tf.AUTO_REUSE in VarScope?


But if I initialize the object and use it in the same route it works







python tensorflow flask






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 27 '18 at 15:11

























asked Dec 27 '18 at 14:51









sudojdoe

226




226












  • How are you serving the app?
    – Sergei Lebedev
    Dec 27 '18 at 15:57


















  • How are you serving the app?
    – Sergei Lebedev
    Dec 27 '18 at 15:57
















How are you serving the app?
– Sergei Lebedev
Dec 27 '18 at 15:57




How are you serving the app?
– Sergei Lebedev
Dec 27 '18 at 15:57












1 Answer
1






active

oldest

votes


















0














I didn't want to answer my own question but I found a solution,in the constructor of the TestClass I added self.graph = tf.get_default_graph() after restoring the session and variables.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53946904%2fvariable-not-found-when-using-a-tensorflow-session-in-another-function%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I didn't want to answer my own question but I found a solution,in the constructor of the TestClass I added self.graph = tf.get_default_graph() after restoring the session and variables.






    share|improve this answer


























      0














      I didn't want to answer my own question but I found a solution,in the constructor of the TestClass I added self.graph = tf.get_default_graph() after restoring the session and variables.






      share|improve this answer
























        0












        0








        0






        I didn't want to answer my own question but I found a solution,in the constructor of the TestClass I added self.graph = tf.get_default_graph() after restoring the session and variables.






        share|improve this answer












        I didn't want to answer my own question but I found a solution,in the constructor of the TestClass I added self.graph = tf.get_default_graph() after restoring the session and variables.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Dec 28 '18 at 5:20









        sudojdoe

        226




        226






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53946904%2fvariable-not-found-when-using-a-tensorflow-session-in-another-function%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Mossoró

            Error while reading .h5 file using the rhdf5 package in R

            Pushsharp Apns notification error: 'InvalidToken'