logits 和 labels 必须具有相同的第一维,得到 logits shape [32,1] 和 labels shape [80000]
logits and labels must have the same first dimension, got logits shape [32,1] and labels shape [80000]
我无法运行笔记本的这一部分
logits 和 labels 必须具有相同的第一维,得到 logits shape [32,1] 和 labels shape [80000]
[[{{node loss_2/activation_8_loss/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] 这一直在发生
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
from tensorflow.keras.layers import Conv2D, MaxPooling2D
import pickle
pickle_in = open("X.pickle","rb")
X = pickle.load(pickle_in)
pickle_in = open("y.pickle","rb")
y = pickle.load(pickle_in)
X = X/255.0
model = Sequential()
model.add(Conv2D(256, (3, 3), input_shape=X.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(256, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
# this converts our 3D feature maps to 1D feature vectors
model.add(Dense(64))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='sparse_categorical_crossentropy',
optimizer='adam',
metrics=['categorical_accuracy'])
model.fit(X, y, batch_size=32, epochs=3, validation_split=0.3)
你的最后一个致密层有一个神经元,后面是一个 sigmoid 激活层。这意味着您正在进行二元分类。因此,你应该编译如下:
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['binary_accuracy'])
我无法运行笔记本的这一部分 logits 和 labels 必须具有相同的第一维,得到 logits shape [32,1] 和 labels shape [80000] [[{{node loss_2/activation_8_loss/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] 这一直在发生
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
from tensorflow.keras.layers import Conv2D, MaxPooling2D
import pickle
pickle_in = open("X.pickle","rb")
X = pickle.load(pickle_in)
pickle_in = open("y.pickle","rb")
y = pickle.load(pickle_in)
X = X/255.0
model = Sequential()
model.add(Conv2D(256, (3, 3), input_shape=X.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(256, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
# this converts our 3D feature maps to 1D feature vectors
model.add(Dense(64))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='sparse_categorical_crossentropy',
optimizer='adam',
metrics=['categorical_accuracy'])
model.fit(X, y, batch_size=32, epochs=3, validation_split=0.3)
你的最后一个致密层有一个神经元,后面是一个 sigmoid 激活层。这意味着您正在进行二元分类。因此,你应该编译如下:
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['binary_accuracy'])