我试图建立CNN模型以对mnist数据进行分类。因此,我尝试了这些代码,但是出现了“列表索引超出范围”错误
我正在使用python 3.6和tensorflow 1.12.0,Windows10,并且我的IDE是PyCharm。
C:\Windows\system32>ROBOCOPY F:\robocopytestv G:\robocopytestw /E /MIR
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Friday, February 8, 2019 19:42:35
Source : F:\robocopytestv\
Dest : G:\robocopytestw\
Files : *.*
Options : *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /R:1000000 /W:30
------------------------------------------------------------------------------
6 F:\robocopytestv\
100% New File 0 New Bitmap Image.bmp
100% New File 495616 New Microsoft Access Database.accdb
100% New File 6171 New Microsoft Excel Worksheet.xlsx
100% New File 0 New Microsoft PowerPoint Presentation.pptx
100% New File 0 New Microsoft Word Document.docx
100% New File 7942 New OpenDocument Drawing.odg
New Dir 0 F:\robocopytestv\New folder\
------------------------------------------------------------------------------
Total Copied Skipped Mismatch FAILED Extras
Dirs : 2 1 1 0 0 0
Files : 6 6 0 0 0 0
Bytes : 497.7 k 497.7 k 0 0 0 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00
Speed : 72818428 Bytes/sec.
Speed : 4166.703 MegaBytes/min.
Ended : Friday, February 8, 2019 19:42:35
但是结果是这样的:
sess = tf.Session()
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train / 255.0
x_test = x_test / 255.0
y_train = sess.run(tf.one_hot(y_train, 10))
y_test = sess.run(tf.one_hot(y_test, 10))
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(filters=32, kernel_size=[3, 3], strides=[1, 1],
padding='same', activation=tf.nn.relu),
tf.keras.layers.MaxPooling2D(pool_size=[2, 2], strides=2, padding='same'),
tf.keras.layers.Dropout(rate=0.3),
tf.keras.layers.Conv2D(filters=64, kernel_size=[3, 3], strides=[1, 1],
padding='same', activation=tf.nn.relu),
tf.keras.layers.MaxPooling2D(pool_size=[2, 2], strides=2, padding='same'),
tf.keras.layers.Dropout(rate=0.3),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(units=512, activation=tf.nn.relu),
tf.keras.layers.Dropout(rate=0.5),
tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=15)
print("Accuracy: {}".format(model.evaluate(x_test, y_test)))
答案 0 :(得分:0)
错误IndexError: list index out of range
仅表示您正在尝试访问列表中不存在的位置。
在这里,您尝试将x_train
与y_train
配合使用,其中一个数据框大于另一个数据框。我会尝试比较x_train
和y_train
的长度,看哪个大于另一个,然后更改大小,使它们的长度相等。