Tensorflow模型训练:缺少1个必需的位置参数:“self”

2024-04-20 04:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图按照Train your first neural network: basic classification的例子来练习神经网络分类器,下面是我的代码,直到模型训练的时候:

import tensorflow as tf
from tensorflow import keras

import numpy as np
from matplotlib.pyplot import show
import matplotlib.pyplot as plt

from matplotlib.pyplot import figure
from matplotlib.pyplot import imshow
from matplotlib.pyplot import colorbar
from matplotlib.pyplot import axis
from matplotlib.pyplot import plot
from matplotlib.pyplot import show

print(tf.__version__)

fashion_mnist = keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()


#figure(); imshow(train_images[1]); colorbar(); axis('auto') 

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

N1, N2, N3 = test_images.shape

train_images = train_images / 255.0
test_images  = test_images / 255.0

model = keras.Sequential
([
    keras.layers.Flatten(input_shape=(N2, N3)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])


model.compile(optimizer='adam', 
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])


model.fit(train_images, train_labels, epochs=5)

它返回错误

^{pr2}$

发生在

model.compile(optimizer='adam', 
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])

我好像在谷歌上查了一下

m = model()
m.compile()

可以避免“自我”错误。然而,新的错误是训练仍然没有进行。在

我只是想知道我应该如何修改代码,以便让模型像这样训练:

Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step

Tags: fromtestimportdatalabelsmodelmatplotlibtf
1条回答
网友
1楼 · 发布于 2024-04-20 04:37:57

对你的代码做了一些小的修改。希望你能跟进。我没有在Sequential()内部添加层,而是将所有内容都取出,逐层添加到model。在

import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
from matplotlib.pyplot import show
import matplotlib.pyplot as plt

from matplotlib.pyplot import figure
from matplotlib.pyplot import imshow
from matplotlib.pyplot import colorbar
from matplotlib.pyplot import axis
from matplotlib.pyplot import plot
from matplotlib.pyplot import show

print(tf.__version__)

fashion_mnist = keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()


#figure(); imshow(train_images[1]); colorbar(); axis('auto') 

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

N1, N2, N3 = test_images.shape

train_images = train_images / 255.0
test_images  = test_images / 255.0
# model = Sequential
# ([
#     keras.layers.Flatten(input_shape=(N2, N3)),
#     keras.layers.Dense(128, activation=tf.nn.relu),
#     keras.layers.Dense(10, activation=tf.nn.softmax)
# ])

model= Sequential()
model.add(Dense(128, activation=tf.nn.relu))
model.add(Dense(10, activation=tf.nn.softmax))

model.compile(optimizer='adam', 
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])


model.fit(train_images.reshape(len(train_images),784), train_labels, epochs=5)

使用此代码,它的运行方式如下所示。在

32/60000 [..............................] - ETA: 3:02 - loss: 2.6468 - acc: 0

1344/60000 [..............................] - ETA: 6s - loss: 1.3037 - acc: 0.5

2816/60000 [>.............................] - ETA: 4s - loss: 1.0207 - acc: 0.6

4256/60000 [=>............................] - ETA: 3s - loss: 0.9073 - acc: 0.6

5632/60000 [=>............................] - ETA: 2s - loss: 0.8394 - acc: 0.7

7104/60000 [==>...........................] - ETA: 2s - loss: 0.7912 - acc: 0.7

相关问题 更多 >