尝试使用R和TensorFlow中的本地数据执行MNIST示例

尝试使用R和TensorFlow中的本地数据执行MNIST示例,r,tensorflow,machine-learning,deep-learning,R,Tensorflow,Machine Learning,Deep Learning,我试图执行MNIST示例,但没有使用 input_dataset <- tf$examples$tutorials$mnist$input_data mnist <- input_dataset$read_data_sets("MNIST-data", one_hot = TRUE) 输入数据集什么是“MNIST exmaple”?哪一个?我在这里看了一个单层示例: images <- file("t10k-images-idx3-ubyte", "rb") readBin(

我试图执行MNIST示例,但没有使用

input_dataset <- tf$examples$tutorials$mnist$input_data
mnist <- input_dataset$read_data_sets("MNIST-data", one_hot = TRUE)

输入数据集什么是“MNIST exmaple”?哪一个?我在这里看了一个单层示例:
images <- file("t10k-images-idx3-ubyte", "rb")
readBin(images, integer(), n=4, endian="big")
m = matrix(readBin(images, integer(), size=1, n=28*28, endian="big"),28,28)
image(m)
par(mfrow=c(5,5))
par(mar=c(0,0,0,0)
for(i in 1:25){m = matrix(readBin(images,integer(), size=1, n=28*28, endian="big"),28,28);image(m[,28:1])}
load.mnist <- function(dir) {
  load.image.file <- function(filename) {
    ret <- list()
    f <- file(filename,'rb')
    readBin(f,'integer',n=1,size=4,endian='big')
    ret$n <- readBin(f,'integer',n=1,size=4,endian='big')
    nrow <- readBin(f,'integer',n=1,size=4,endian='big')
    ncol <- readBin(f,'integer',n=1,size=4,endian='big')
    x <- readBin(f,'integer',n=ret$n*nrow*ncol,size=1,signed=F)
    ret$x <- matrix(x, ncol=nrow*ncol, byrow=T)
    close(f)
    ret
  }
  load.label.file <- function(filename) {
    f = file(filename,'rb')
    readBin(f,'integer',n=1,size=4,endian='big')
    n = readBin(f,'integer',n=1,size=4,endian='big')
    y = readBin(f,'integer',n=n,size=1,signed=F)
    close(f)
    y
  }
  mnist <- list()
  mnist$train <- load.image.file(paste(dir,'/train-images-idx3-ubyte',sep=""))
  mnist$test <- load.image.file(paste(dir,'/t10k-images-idx3-ubyte',sep=""))

  mnist$train$y <- load.label.file(paste(dir,'/train-labels-idx1-ubyte',sep=""))
  n <- length(mnist$train$y)
  mnist$train$yy <- matrix(rep(0,n*10),nrow=n,ncol=10)
  for (i in 1:n){
    mnist$train$yy[i,mnist$train$y[i] + 1] <- 1
  }
  mnist$test$y <- load.label.file(paste(dir,'/t10k-labels-idx1-ubyte',sep=""))
  m <- length(mnist$test$y)
  mnist$test$yy <- matrix(rep(0,m*10),nrow=m,ncol=10)
  for (j in 1:m){
    mnist$test$yy[j,mnist$test$y[j] + 1] <- 1
  }
  mnist
}


show.digit <- function(arr784, col=gray(12:1/12), ...) {
  image(matrix(arr784, nrow=28)[,28:1], col=col, ...)
}
show_digit(train$x[5,])
library(tensorflow)
library(tfdatasets)

mnist_train_spec <- csv_record_spec("mnist_train.csv")
dataset <- text_line_dataset("mnist_train.csv", record_spec = mnist_train_spec)
str(dataset)
mnist_train_spec <- csv_record_spec(
names = c("label", paste("P", as.character(c(2:785)), sep = ""))
)