因此,我一直遵循Google的官方tensorflow指南,并尝试使用Keras构建一个简单的神经网络。但是,在训练模型时,它不使用整个数据集(具有60000个条目),而是仅使用1875个条目进行训练。有可能解决吗?
import tensorflow as tf
from tensorflow import keras
import numpy as np
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
train_images = train_images / 255.0
test_images = test_images / 255.0
class_names = ['T-shirt', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot']
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10)
])
model.compile(optimizer='adam',
loss= tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10)
输出:
Epoch 1/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3183 - accuracy: 0.8866
Epoch 2/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3169 - accuracy: 0.8873
Epoch 3/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3144 - accuracy: 0.8885
Epoch 4/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3130 - accuracy: 0.8885
Epoch 5/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3110 - accuracy: 0.8883
Epoch 6/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3090 - accuracy: 0.8888
Epoch 7/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3073 - accuracy: 0.8895
Epoch 8/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3057 - accuracy: 0.8900
Epoch 9/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3040 - accuracy: 0.8905
Epoch 10/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3025 - accuracy: 0.8915
<tensorflow.html" target="_blank">python.keras.callbacks.History at 0x7fbe0e5aebe0>
这是我一直在为此工作的原始Google
colab笔记本:https
://colab.research.google.com/drive/1NdtzXHEpiNnelcMaJeEm6zmp34JMcN38
1875
模型拟合期间显示的数字不是训练样本;它是 批 数。
model.fit
包括一个可选参数batch_size
,根据文档所述:
如果未指定,
batch_size
则默认为32。
因此,这里发生的是-您适合默认批处理大小32(因为您没有指定其他任何东西),因此数据的批处理总数为
60000/32 = 1875
问题内容: 我的训练数据的格式为(?,15)其中?是可变长度。 创建模型时,请指定以下内容: 我的训练数据的形状为(35730,?,15)。 在python中检查这个我得到: 输出:(35730,) 输出:(513,15) 当我尝试根据训练数据拟合模型时,出现ValueError: 我只能在单个样本上使用model.train_on_batch()来训练模型。 我该如何解决?似乎keras认为我的
问题内容: 我想知道是否有可能保存经过部分训练的Keras模型并在再次加载模型后继续进行训练。 这样做的原因是,将来我将拥有更多的训练数据,并且我不想再次对整个模型进行训练。 我正在使用的功能是: 编辑1:添加了完全正常的示例 对于10个纪元后的第一个数据集,最后一个纪元的损失将为0.0748,精度为0.9863。 保存,删除和重新加载模型后,第二个数据集上训练的模型的损失和准确性分别为0.171
我和keras在VGG网络上做了一个小实验。我使用的数据集是花卉数据集,有5个类,包括玫瑰、向日葵、蒲公英、郁金香和雏菊。 有一点我想不通:当我使用一个小的CNN网络(不是VGG,在下面的代码中)时,它收敛很快,仅经过大约8个周期就达到了大约75%的验证准确率。 然后我切换到VGG网络(代码中注释掉的区域)。网络的损失和准确性根本没有改变,它输出如下内容: 纪元1/50 402/401 [====
问题内容: 我正在将Kears与tensorflow一起使用,并且我有一个3输出的模型,我只想训练2个输出。 我尝试使用上面的代码来执行此操作,但是我不确定它是否可以执行我想要的操作。因此,我认为这会加总损失,并且会用该损失来训练每个输出,而我根本不希望进行训练。(我需要,因为它用于测试)。谁能告诉我如何实现这一目标或让我确信代码实际上满足了我的需求? 问题答案: 您必须创建2个这样的不同模型 您
我的代码是: 我的数据如下: 我的结果是: 两个时代后它就卡在那里了。我能做些什么来防止它这么快卡住?
/usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:174:不推荐使用名称tf.get_default_session。请改用tf.compat.v1.get_default_session。 /usr/local/lib/python3.6/dist-packages/keras/backend/t