为什么我的trainable_variables不一样?

时间:2019-11-12 15:03:25

标签: python tensorflow

如果我多次使用Tensorflow训练相同的网络,则trainable_variables不会相同。每次通过都会添加变量。

from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
import numpy as np

def model_fit_evalu():
    mnist = tf.keras.datasets.mnist
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0
    model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
    ])
    model.compile(optimizer='adam',
                loss='sparse_categorical_crossentropy',
                metrics=['accuracy'])

    model.fit(x_train, y_train, epochs=5)
    test_loss,test_acc =  model.evaluate(x_test,  y_test, verbose=2)
    variables = 0
    #Here i get the Variables
    variables = np.sum([np.prod(v.get_shape().as_list()) for v in tf.compat.v1.trainable_variables()])
    print("test_loss: ",test_loss , "test_acc: ", test_acc, "variables",variables)


if __name__ == "__main__":
    model_fit_evalu()
    model_fit_evalu()
    model_fit_evalu()
  

test_loss:0.07309756367248484 test_acc:0.9776变量101770

     

test_loss:0.08397345146499574 test_acc:0.9737变量203540

     

test_loss:0.07262342926012352 test_acc:0.9773变量305310

就是这样。如您所见,变量被添加在一起。在运行5次时,变量将是其5倍。 您能帮我找出我做错了吗?

预先感谢您的帮助。

0 个答案:

没有答案
相关问题