尝试使用R和TensorFlow中的本地数据执行MNIST示例
我试图执行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(
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 = ""))
)