代码之家  ›  专栏  ›  技术社区  ›  P4ts4k

如何修复此tensorflow代码中的TypeError?

  •  0
  • P4ts4k  · 技术社区  · 1 年前

    代码:

    import tensorflow as tf
    from tensorflow import keras
    
    
    fashion_mnist = keras.datasets.fashion_mnist
    (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
    
    model = keras.Sequential([
        keras.layers.Flatten(input_shape = (28,28)),
        keras.layers.Dense(128,activation = tf.nn.relu),
        keras.layers.Dense(10,activation = tf.nn.softmax)
    ])
    
    model.compile(optimizer=tf.optimizers.Adam(),),
                  loss = 'sparse_categorical_crossentropy')
    
    model.fit(train_images,train_labels,epochs = 5)
    
    test_loss, test_acc = model.evaluate (test_images, test_labels)
    

    首先,我有“AttributeError:module”tensorflow_api.v2.train“没有属性”AdamOptimizer“” 并更改了优化器=tf.train。AdamOptimizer()'到'tf.optimizers。Adam()'(工作),然后我又犯了一个错误。(在找到解决方案[https://stackoverflow.com/questions/55318273/tensorflow-api-v2-train-has-no-attribute-adamoptimizer] )

    错误:

    line 25, in <module> test_loss, test_acc = model.evaluate(test_images, test_labels) ^^^^^^^^^^^^^^^^^^^ TypeError: cannot unpack non-iterable float object

    以下是ChatGPT建议我的内容(同样不起作用):

    import tensorflow as tf
    from tensorflow import keras
    
    
    fashion_mnist = keras.datasets.fashion_mnist
    (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
    
    # Reshape the input data
    train_images = train_images.reshape(train_images.shape[0], 28, 28, 1)
    
    model = keras.Sequential([
        keras.layers.Flatten(input_shape=(28,28)),
        keras.layers.Dense(128, activation=tf.nn.relu),
        keras.layers.Dense(10, activation=tf.nn.softmax)
    ])
    
    model.compile(optimizer=tf.optimizers.Adam(),
                  loss='sparse_categorical_crossentropy')
    
    model.fit(train_images, train_labels, epochs=5)
    
    # Reshape the test data
    test_images = test_images.reshape(test_images.shape[0], 28, 28, 1)
    
    test_loss, test_acc = model.evaluate(test_images, test_labels)
    

    还有我从Zero到Hero tensorflow YT视频中获得的所有代码

    1 回复  |  直到 1 年前
        1
  •  1
  •   Никита Шубин    1 年前

    在编译中添加“准确性”度量:

    model.compile(optimizer=tf.optimizers.Adam(),
                  loss='sparse_categorical_crossentropy',
                  metrics=['acc'])
    

    没有它,你只会得到损失值。