UFuncTypeError:无法使用强制转换规则"same_kind"将 ufunc 'multiply'输出从 dtype('<U32') 转换为 dtype('float32'



我正在尝试创建一个 ML 模型来对石头、纸和剪刀的手势图像进行分类。 我不断收到这样的错误消息:

UFuncTypeError:无法使用强制转换规则"same_kind"将 ufunc "乘法"输出从 dtype('

这是我的代码:

import tensorflow as to
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow import keras
from tensorflow.keras import layers
!wget --no-check-certificate  
https://dicodingacademy.blob.core.windows.net/picodiploma/ml_pemula_academy/rockpaperscissors.zip
-O /tmp/rockpaperscissors.zip
import zipfile,os
local_zip = '/tmp/rockpaperscissors.zip'
zip_ref = zipfile.ZipFile(local_zip, 'r')
zip_ref.extractall('/tmp')
zip_ref.close()
!pip install split_folders 
import split_folders as SF
sf.ratio('/tmp/rockpaperscissors/rps-cv-images', 
output="/tmp/rockpaperscissors/data",seed=1337, ratio=(.8, .2))
root_path = '/tmp/rockpaperscissors/data'
train_path = os.path.join(root_path, 'train')
validation_path = os.path.join(root_path, 'val')
train_datagen = ImageDataGenerator(
rescale = "none",
rotation_range = 30,
vertical_flip = True,
horizontal_flip = True,
zoom_range = 0.1,
width_shift_range = 0.1,
height_shift_range = 0.1,
shear_range = 0.2,
fill_mode = 'nearest')
test_datagen = ImageDataGenerator(
rescale = "none",
rotation_range = 30,
vertical_flip = True,
horizontal_flip = True,
zoom_range = 0.1,
width_shift_range = 0.1,
height_shift_range = 0.1,
shear_range = 0.2,
fill_mode = 'nearest')
train_generator = train_datagen.flow_from_directory(
train_path,  
target_size=(150, 150),  
batch_size=32,
class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(
validation_path, 
target_size=(150, 150), 
batch_size=32, 
class_mode='categorical')
model = keras.Sequential()
model.add(layers.Conv2D(32, (5,5), activation='relu', input_shape=(150, 150, 
3)))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Conv2D(64, (3,3), activation='relu'))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Conv2D(128, (3,3), activation='relu'))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Conv2D(256, (3,3), activation='relu'))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Conv2D(512, (3,3), activation='relu'))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(3, activation='softmax'))
model.summary()
loss_fn = keras.losses.SparseCategoricalCrossentropy()
model.compile(loss=loss_fn,
optimizer=RMSprop(),
metrics=['accuracy'])
model.fit(
train_generator,
steps_per_epoch=54,  
epochs=22,
validation_data=validation_generator, 
validation_steps=13,  
verbose=2)

这是我的代码链接: 石头剪刀布分级机 谢谢!

您使用none作为字符串。使用rescale = None或不指定它(其默认值已经是None(。

最新更新