Я новичок в tenorflow. Я не могу построить учебник Google TenorFlow от TenorFlow 2.0. Вот эта страница https://www.tensorflow.org/alpha/tutorials/keras/basic_classification
Я не могу загрузить данные из Google. Поэтому я загружаю данные в локальную систему и использую mnist_reader для чтения данных. И я проверил вывод mnist_reader, размер изображения правильный (28 * 28).
def load_mnist(path, kind='train'):
import os
import gzip
import numpy as np
"""Load MNIST data from `path`"""
labels_path = os.path.join(path,
'%s-labels-idx1-ubyte.gz'
% kind)
images_path = os.path.join(path,
'%s-images-idx3-ubyte.gz'
% kind)
with gzip.open(labels_path, 'rb') as lbpath:
labels = np.frombuffer(lbpath.read(), dtype=np.uint8,
offset=8)
with gzip.open(images_path, 'rb') as imgpath:
images = np.frombuffer(imgpath.read(), dtype=np.uint8,
offset=16).reshape(len(labels), 28, 28)
return images, labels
Существует исключение для model.fit.
PS G:\LearningTensorflow\Google> & C:/ProgramData/Anaconda3/envs/tensor2flow/python.exe g:/LearningTensorflow/Google/MLBasics.py
2.0.0-alpha0
2019-04-20 10:46:11.350824: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
Traceback (most recent call last):
File "g:/LearningTensorflow/Google/MLBasics.py", line 60, in <module>
model.fit(train_images, train_labels, epochs=5)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\keras\engine\training.py", line 873, in fit
steps_name='steps_per_epoch')
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\keras\engine\training_arrays.py", line 239, in model_iteration
model.reset_metrics()
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1173, in reset_metrics
m.reset_states()
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\keras\metrics.py", line 199, in reset_states
K.batch_set_value([(v, 0) for v in self.variables])
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\keras\backend.py", line 2880, in batch_set_value
x.assign(np.asarray(value, dtype=dtype(x)))
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\ops\resource_variable_ops.py", line 1053, in assign
value_tensor = ops.convert_to_tensor(value, dtype=self.dtype)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\framework\ops.py", line 1050, in convert_to_tensor
return convert_to_tensor_v2(value, dtype, preferred_dtype, name)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\framework\ops.py", line 1108, in convert_to_tensor_v2
as_ref=False)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\framework\ops.py", line 1186, in internal_convert_to_tensor
ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\framework\constant_op.py", line 304, in _constant_tensor_conversion_function
return constant(v, dtype=dtype, name=name)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\framework\constant_op.py", line 245, in constant
allow_broadcast=True)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\framework\constant_op.py", line 253, in _constant_impl
t = convert_to_eager_tensor(value, ctx, dtype)
File "C:\ProgramData\Anaconda3\envs\tensor2flow\lib\site-packages\tensorflow\python\framework\constant_op.py", line 114, in convert_to_eager_tensor
**return ops.EagerTensor(value, handle, device, dtype)
ValueError: TypeError: len() of unsized object**
from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
import mnist_reader
print(tf.__version__)
train_images, train_labels = mnist_reader.load_mnist('data/fashion', kind='train')
test_images, test_labels = mnist_reader.load_mnist('data/fashion', kind='t10k')
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
train_images = train_images / 255.0
test_images = test_images / 255.0
train_labels = train_labels * 1
test_labels = test_labels * 1
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('\nTest accuracy:', test_acc)