【发布时间】:2020-10-20 12:32:56
【问题描述】:
我正在尝试创建一个机器学习模型,用于对石头、纸和剪刀的手势图像进行分类。我不断收到这样的错误消息:
UFuncTypeError: 无法使用转换规则“same_kind”将 ufunc 'multiply' 输出从 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)
这是我的代码的链接: Rock Paper Scissors Classifier 谢谢!
【问题讨论】:
-
您可以公开访问该文件吗?它说我需要请求访问权限。另外,脚本的哪一行是产生错误的那一行?
-
您的 colab 代码不可公开访问,但是您可以关注这个 github 问题来解决与您的问题相同的问题 github.com/numpy/numpy/issues/7225
标签: python tensorflow classification google-colaboratory