Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CNN问题_Python_Tensorflow_Machine Learning_Keras_Deep Learning - Fatal编程技术网

Python CNN问题

Python CNN问题,python,tensorflow,machine-learning,keras,deep-learning,Python,Tensorflow,Machine Learning,Keras,Deep Learning,我现在正在为一个小小的CNN制作Cifar-10数据集。我只是不时地更新一下我的代码,现在它不起作用了。我想不出这个错误。预言告诉我“不是一个数字”。我找不到问题的答案。所以我不能不多加一点文字就发布这个问题。我知道我应该在这里写什么。现在吃一顿丰盛的早餐就好了。咖啡和煎饼之类的。我希望我现在能把问题发出去 from keras.datasets import cifar10 import numpy as np (x_training, y_training), (x_test,y_test

我现在正在为一个小小的CNN制作Cifar-10数据集。我只是不时地更新一下我的代码,现在它不起作用了。我想不出这个错误。预言告诉我“不是一个数字”。我找不到问题的答案。所以我不能不多加一点文字就发布这个问题。我知道我应该在这里写什么。现在吃一顿丰盛的早餐就好了。咖啡和煎饼之类的。我希望我现在能把问题发出去

from keras.datasets import cifar10
import numpy as np

(x_training, y_training), (x_test,y_test) = cifar10.load_data()

x_training = x_training / 255.0
x_test = x_test / 255.0


%matplotlib inline

import matplotlib.pyplot as plt
plt.imshow(x_training[3])
plt.show


from keras.models import Sequential
from keras.layers import Dense, Flatten,Conv2D , MaxPooling2D, Dropout
import tensorflow as tf

model = Sequential()


model.add(Conv2D(32, kernel_size=(3, 3), input_shape=(32, 32, 3), activation="relu", padding="same"))
model.add(Conv2D(32, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(Conv2D(64, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(128, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(Conv2D(128, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(256, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(1, activation="sigmoid"))


model.compile(optimizer='RMSProp', loss="binary_crossentropy", metrics=['accuracy'])
model.summary()

model.fit(x_training, y_training,batch_size=128, epochs=10, shuffle = True )

model.evaluate(x_training, y_training)
results = model.predict(x_training[1].reshape(-1, 32, 32, 3))
results


class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',
               'dog', 'frog', 'horse', 'ship', 'truck']

max = np.max(results)
max_position = np.argmax(results)
class_name_predict = class_names[max_position]


plt.imshow(x_training[1])
plt.show

test = class_name_predict
test


plt.imshow(x_training[1])
plt.show


x = class_names[y_training[1][0]]
x


您的模型中存在一些错误:

多类问题的输出层的维数必须等于具有softmax激活函数的类数

多类问题的标准损失是
categorical\u crossentropy
sparse\u categorical crossentropy
<当您的目标是一个热编码时,可以使用代码>分类交叉熵,
稀疏分类交叉熵
当您有整数编码标签时使用(这是您的情况)


它工作正常。但是我不太理解输出层的问题。因此,如果我使用的是叠加在另一层上的过滤器,我通常必须使最后一个过滤器层看起来像这样?你可以叠加任何你想要的东西,但在一个多类问题中的最后一层必须有等于类数的单位/神经元和一个softmax激活来重现概率
model = Sequential()

model.add(Conv2D(32, kernel_size=(3, 3), input_shape=(32, 32, 3), activation="relu", padding="same"))
model.add(Conv2D(32, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(Conv2D(64, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(128, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(Conv2D(128, kernel_size=(3, 3), activation="relu", padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(256, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(len(class_names), activation="softmax"))

model.compile(optimizer='RMSProp', loss="sparse_categorical_crossentropy", metrics=['accuracy'])
model.summary()