首页 > 解决方案 > 使用 Tensorfllow、keras 和 TidyR 和 R studio 的分类图像模型的问题

问题描述

大家好,我希望你们做得很好,我正在学习使用 RStudio 的编程课程。目前,我正在构建基本的分类图像模型,讲师使用包为tensorflow, keras, tidyR. 除了我尝试的最后一个块(我在下面附上)之外,我所有的块都可以工作,但我不知道错误是什么意思,或者我该如何修复它。我会很感激得到建议,我应该尝试解决问题的事情,或者替代方案和计划 b 让模型工作......如果你可以随意用西班牙语交流,英语是我的第二语言,谢谢提前

library(tensorflow)
tf$constant("Hellow Tensorflow")
library(keras)
data<-dataset_fashion_mnist()  ##llamar el dataframe
c(train_images, train_labels) %<-% data$train ##código_para_el_entrenamiento_del_reconocimiento de imágenes
c(test_images, test_labels) %<-% data$test ##código_para_el_test_de_clasificación_deimágenes
class_names = c("T-shirt/top", "Trouser", "Pullover", "Dress", "Coat", "Sandal",
                "Shirt", "Sneaker", "Bag", "Ankle boots")

探索者数据

dim(train_images)
dim(train_labels)
train_labels[1:20]
dim(test_images)
dim(test_labels)

dim(train_labels)
                                ##Instalación de paquetes

library(ggplot2)

library(tidyr)
                                   ##Manipulación de los datos
img1<-as.data.frame(train_images[1, , ])
View(img1)
colnames(img1)<-seq_len(ncol(img1))
View(img1)
img1$y<-seq_len(nrow(img1))
img1<-gather(img1, "x", "value", -y)
img1$x<-as.integer(img1$x)
                               ### Gráfico de los datos
ggplot(img1, aes(x = x, y = y, fill = value)) +geom_tile()+       scale_fill_gradient( low = "white", high = "black", na.value = NA) +
  scale_y_reverse() + 
  theme_minimal() + 
  theme(panel.grid = element_blank()) +
theme(aspect.ratio = 1) + xlab(" ") + ylab(" ") 
train_images<-train_images/255
test_images<-test_images/255
par(mfcol = c(5,5))
par(mar = c( 0, 0, 1.5, 0), xaxs = "i", yaxs = "i")
for ( i in 1:25 ) {
img<-train_images[i, , ]
img<-t(apply(img, 2, rev))
image(1:28, 1:28, img, col = gray((0:255)/255), xaxt = "n", yaxt = "n", 
      main = paste(class_names[train_labels[i] + 1 ]))
}
model<-keras_model_sequential()
model %>%
  layer_flatten(input_shape = c(28, 28)) %>%
  layer_dense(units = 128, activation = "relu") %>% 
  layer_dense(units = 10, activation = "softmax")

model %>% compile(
  optimizer = "adam",
  loss = "saprse_categorial_crossentropy",
  metrics = "accuracy"
)                 

model %>% fit(train_images, train_labels, epochs = 5, verbose = 5)

我得到的错误

在新窗口中显示 install.packages 中的警告:包 'contrib.url' 不适用于此版本的 R

您的 R 版本的此包的版本可能在其他地方可用,请参阅 https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages 中的想法新窗口 tf.Tensor(b'Hellow Tensorflow', shape=(), dtype=string) 在新窗口中显示 [1] 60000 28 28 在新窗口中显示 [1] 60000 在新窗口中显示 [1] 9 0 0 3 0 2 7 2 5 5 0 9 5 5 7 9 1 0 6 4 在新窗口中显示 [1] 10000 28 28 在新窗口中显示 [1] 10000 在新窗口中显示

在新窗口中显示

在新窗口中显示 py_call_impl(callable, dots$args, dots$keywords) 错误:ValueError: in user code: C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~ 1\lib\site-packages\tensorflow\python\keras\engine\training.py:855 train_function * 返回 step_function(self, iterator) C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs \R-RETI~1\lib\site-packages\tensorflow\python\keras\engine\training.py:845 step_function ** 输出 = model.distribute_strategy.run(run_step, args=(data,)) C:\Users \PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1285 运行返回 self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs) C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py :2833 call_for_each_replica 返回自我。_call_for_each_replica(fn, args, kwargs) C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py :3608 _call_f 6. stop(structure(list(message = "ValueError: in user code:\n\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1 \lib\site-packages\tensorflow\python\keras\engine\training.py:855 train_function *\n return step_function(self, iterator)\n C:\Users\PASANT~1\AppData\Local\R-MINI~ 1\envs\R-RETI~1\lib\site-packages\tensorflow\python\keras\engine\training.py:845 step_function **\n 输出 = model.distribute_strategy.run(run_step, args=(data,) )\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1285 运行\n return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2833 call_for_each_replica\n return self._call_for_each_replica( fn, args, kwargs)\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py :3608 _call_for_each_replica\n return fn(*args, **kwargs)\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\ tensorflow\python\keras\engine\training.py:838 run_step **\n 输出 = model.train_step(data)\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R -RETI~1\lib\site-packages\tensorflow\python\keras\engine\training.py:797 train_step\ny, y_pred, sample_weight, regularization_losses=self.losses)\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\keras\engine\compile_utils.py:187称呼2078 获取\n 返回反序列化(标识符)\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\keras\ loss.py:2037 反序列化\n printable_module_name='loss function')\n C:\Users\PASANT~1\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\ tensorflow\python\keras\utils\generic_utils.py:703 deserialize_keras_object\n .format(printable_module_name, object_name))\n\n ValueError: Unknown loss function: sparse_categorial_crossentropy。请确保将此对象传递给 703 deserialize_keras_object\n .format(printable_module_name, object_name))\n\n ValueError: Unknown loss function: sparse_categorial_crossentropy。请确保将此对象传递给 703 deserialize_keras_object\n .format(printable_module_name, object_name))\n\n ValueError: Unknown loss function: sparse_categorial_crossentropy。请确保将此对象传递给custom_objects争论。有关详细信息,请参见https://www.tensorflow.org/guide/keras/save_and_serialize#registering_the_custom_object。\n ", call = py_call_impl(callable, dots$args, dots$keywords), cppstack = NULL), class = c(" Rcpp::exception", "C++Error", "error", "condition"))) 5. (结构(函数 (...) {dots <- py_resolve_dots(list(...)) 结果 <- py_call_impl(callable, dots$args, dots$keywords) ... 4. do.call(object$fit, args) 3. fit.keras.engine.training.Model(., train_images, train_labels, epochs = 5, verbose = 5) 2. fit(., train_images, train_labels, epochs = 5, verbose = 5) 1. model %>% fit(train_images, train_labels, epochs = 5, verbose = 5)

标签: rtensorflowkerastidyr

解决方案


推荐阅读