0
テンソルフローで作成した確率的な勾配降下コードを取得しようとしていますが、MINSTデータセットいいね)。これは簡単な問題だとお詫び申し上げますが、どうすればいいのか分からない。ありがとうございました!ValueError:すべての入力配列の次元数が同じでなければなりません - TensorflowマニュアルMSINT
私はこのエラーに実行している:
X = np.c_ [:このコード行で
"とValueErrorすべての入力配列は、次元の数が同じでなければなりません" np.ones(n)、image_tensor2]#line75
なぜこれが機能しないのかわかりません - 画像ファイルをどのように読み込んだのかがわかりますが、必ず。ここに私のコードは
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import argparse
#load the images in order
vector = [] #initialize the vector
filenames = tf.train.match_filenames_once("train_data/*.jpg")
filename_queue = tf.train.string_input_producer(filenames)
image_reader = tf.WholeFileReader()
_, image_file = image_reader.read(filename_queue)
image_orig = tf.image.decode_jpeg(image_file)
image = tf.image.resize_images(image_orig, [28, 28])
image.set_shape((28, 28, 3))
images = tf.image.decode_jpeg(image_file)
with tf.Session() as sess:
tf.global_variables_initializer().run()
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
image_tensor = sess.run([images])
#print(image_tensor)
#coord.request_stop()
#coord.join(threads)
image_tensor2 = np.array(image_tensor)
n_samples = image_tensor2.shape[0]
lossHistory=[]
ap = argparse.ArgumentParser()
ap.add_argument("-b", "--batch-size", type = int, default =32, help = "size of SGD mini-batches")
args = vars(ap.parse_args())
# Create the model
x = tf.placeholder(tf.float32, [None, 784]) #784=28*28
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.matmul(x, W) + b
y_ = tf.placeholder(tf.float32, [25112, 10])
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
# Train
def next_batch(x, batchSize):
for i in np.arange(0, x.shape[0], batchSize):
yield (x[i:i + batchSize])
def gradient_descent_2(alpha, x, y, numIterations):
m,n = (784, 25112) # number of samples
theta = np.ones(n)
theta.fill(0.01)
x_transpose = x.transpose()
losshistory=[]
count = 0
batchX = 50
for (batchX) in next_batch(x, args["batch_size"]):
for iter in range(0, numIterations):
hypothesis = np.dot(x, theta)
loss = hypothesis - y
J = np.sum(loss ** 2)/(2 * m) # cost
lossHistory.append(J)
print("iter %s | J: %.3f" % (iter, J))
gradient = np.dot(x_transpose, loss)/m
theta = theta - alpha * gradient
return theta
if __name__ == '__main__':
m, n = (784, 25112)
x = np.c_[ np.ones(n), image_tensor2] # insert column
alpha = 0.001 # learning rate
theta = gradient_descent_2(alpha, image_tensor2, y_, 50)
fig = plt.figure()
print(theta)
。 image_tensor2(image_tensor2.shape)の寸法は? – putonspectacles