मैं एक ऐसी स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो मुझे एक अंक की छवि खींचने की अनुमति दे और फिर यह निर्धारित करे कि एमएनआईएसटी पर प्रशिक्षित मॉडल के साथ यह कितना अंक है।टेन्सफोर्लो - मेरी खुद की छवियों के साथ एक एमनिस्ट तंत्रिका नेट का परीक्षण
यहाँ मेरी कोड है:
import random
import image
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
import numpy as np
import scipy.ndimage
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(1000)
sess.run(train_step, feed_dict= {x: batch_xs, y_: batch_ys})
print ("done with training")
data = np.ndarray.flatten(scipy.ndimage.imread("im_01.jpg", flatten=True))
result = sess.run(tf.argmax(y,1), feed_dict={x: [data]})
print (' '.join(map(str, result)))
किसी कारण से परिणाम हमेशा गलत हैं लेकिन जब मैं मानक परीक्षण विधि का प्रयोग कर एक 92% सटीकता है।
मुझे लगता है कि समस्या हो सकती है कि कैसे मैं छवि इनकोडिंग: वे इसे कैसे किया
data = np.ndarray.flatten(scipy.ndimage.imread("im_01.jpg", flatten=True))
मैं the next_batch() function के लिए tensorflow कोड में देख कोशिश को देखने के लिए, लेकिन मैं पता नहीं है मैं कैसे के खिलाफ तुलना कर सकते हैं मेरे दृष्टिकोण।
समस्या कहीं और भी हो सकती है।
80 +% सटीकता बनाने में कोई मदद की सराहना की जाएगी।
छवि एन्कोडिंग के लिए, .png का उपयोग करने का प्रयास करें। मेरे परीक्षणों से, .jpg प्रारूप तब तक खराब है जब तक यह छवि पर कलाकृतियों (ग्रे पिक्सेल) छोड़ देता है। – Link