1

Iがそれぞれ畳み込みニューロン層の行列計算の問題を有してい......Tensorflow畳み込みSoftmaxCrossEntropyWithLogits logitsとラベルは同じサイズでなければならない:logits_size = [640,2] labels_size = [10,2]

これにより、私は取得しています:

InvalidArgumentError(トレースバックについては上記参照):logitsとラベルは同じサイズでなければなりません。logits_size = [640,2] labels_size = [10,2]

誰かが私を指すことができます初心者のフレンドリーなリソースと詳細な説明? https://github.com/martin-gorner/tensorflow-mnist-tutorial/blob/master/mnist_3.0_convolutional.py

import os 
import tensorflow as tf 
from tensorflow.python.framework import ops 
from tensorflow.python.framework import dtypes 
import numpy as np 
import glob 
import fnmatch 
import matplotlib.pyplot as plt 
from PIL import Image 
import random 
import threading 
import math 

tf.set_random_seed(0) 

def convertToOneHot(vector, num_classes=None): 

    assert isinstance(vector, np.ndarray) 
    assert len(vector) > 0 

     if num_classes is None: 
     num_classes = np.max(vector)+1 
     else: 
     assert num_classes > 0 
     assert num_classes >= np.max(vector) 

    result = np.zeros(shape=(len(vector), num_classes)) 
    result[np.arange(len(vector)), vector] = 1 

    return result.astype(np.float32) 


def make_labels(filenames): 

    n = len(filenames) 

    #y = np.zeros((n,2), dtype = np.int32) 
    #y = np.zeros(shape=[n], dtype = np.float32) 
    label_y = np.zeros((n,2), dtype = np.float32) 
    counter = 0 
    dog = 0 
    cat = 0 

    for i in range(n): 
     # If 'dog' string is in file name assign '1' 
     if fnmatch.fnmatch(filenames[i], '*dog*'): 
      label_y[i,0] = 1 
      #label_y[i] = 1 
      dog += 1 
     else: 
      label_y[i,1] = 1 
      #label_y[i] = 0 
      cat += 1 

    print("Dog: " , dog , " Cat: " , cat) 

    return label_y 

def make_test_labels(filenames): 

    n = len(filenames) 

    test_label_y = np.zeros([n], dtype = np.int32) 

    for i in range(n): 
     test_label_y[i] = random.randrange(0,2) 

    one_hot = convertToOneHot(test_label_y) 

    return one_hot 


train_path = "./data/train/*.jpg" 

test_path = "./data/test1/*.jpg" 

#Training Dataset 

train_files = tf.gfile.Glob(train_path) 

train_image_labels = make_labels(train_files) 

train_filename_queue = tf.train.string_input_producer(train_files, shuffle=False) 

train_image_reader = tf.WholeFileReader() 

train_image_filename, train_image_file = train_image_reader.read(train_filename_queue) 

train_image_file = tf.image.decode_jpeg(train_image_file, 1) 

train_image_file = tf.image.resize_images(train_image_file, [224, 224]) 

train_image_file.set_shape((224, 224, 1)) 

train_image_file = tf.squeeze(train_image_file) 


#Test or Eval Dataset 

test_files = tf.gfile.Glob(test_path) 

test_image_labels = make_test_labels(test_files) 

test_filename_queue = tf.train.string_input_producer(test_files, shuffle=False) 

test_image_reader = tf.WholeFileReader() 

test_image_filename, test_image_file = test_image_reader.read(test_filename_queue) 

test_image_file = tf.image.decode_jpeg(test_image_file, 1) 

test_image_file = tf.image.resize_images(test_image_file, [224, 224]) 

test_image_file.set_shape((224, 224, 1)) 

test_image_file = tf.squeeze(test_image_file) 


train_batch_size = 10 

test_batch_size = 2 

num_preprocess_threads = 1 

min_queue_examples = 256 


X = tf.placeholder(tf.float32, [None, 224, 224, 1]) 

Y_ = tf.placeholder(tf.float32, [None, 2]) 

lr = tf.placeholder(tf.float32) 

pkeep = tf.placeholder(tf.float32) 

# three convolutional layers with their channel counts, and a 
# fully connected layer (tha last layer has 2 softmax neurons) 

K = 4 # first convolutional layer output depth 
L = 8 # second convolutional layer output depth 
M = 12 # third convolutional layer 
N = 200 # fully connected layer 

W1 = tf.Variable(tf.truncated_normal([5, 5, 1, K], stddev=0.1)) # 5x5 patch, 1 input channel, K output channels 

print "W1: " , W1.get_shape() 

B1 = tf.Variable(tf.ones([K])/10) 

print "B1: " , B1.get_shape() 

W2 = tf.Variable(tf.truncated_normal([5, 5, K, L], stddev=0.1)) 

print "W2: " , W2.get_shape() 

B2 = tf.Variable(tf.ones([L])/10) 

print "B2: " , B2.get_shape() 

W3 = tf.Variable(tf.truncated_normal([4, 4, L, M], stddev=0.1)) 

print "W3: " , W3.get_shape() 

B3 = tf.Variable(tf.ones([M])/10) 

print "B3: " , B3.get_shape() 

W4 = tf.Variable(tf.truncated_normal([7 * 7 * M, N], stddev=0.1)) 

print "W4: " , W4.get_shape() 

B4 = tf.Variable(tf.ones([N])/10) 

print "B4: " , B4.get_shape() 

W5 = tf.Variable(tf.truncated_normal([N, 2], stddev=0.1)) 

print "W5: " , W5.get_shape() 

B5 = tf.Variable(tf.ones([2])/10) 

print "B5: " , B5.get_shape() 


# The model 

stride = 1 # output is 28x28 

Y1 = tf.nn.relu(tf.nn.conv2d(X, W1, strides=[1, stride, stride, 1], padding='SAME') + B1) 

print "Y1: " , Y1.get_shape() 

stride = 2 # output is 14x14 

Y2 = tf.nn.relu(tf.nn.conv2d(Y1, W2, strides=[1, stride, stride, 1], padding='SAME') + B2) 

print "Y2: " , Y2.get_shape() 

stride = 2 # output is 7x7 

Y3 = tf.nn.relu(tf.nn.conv2d(Y2, W3, strides=[1, stride, stride, 1], padding='SAME') + B3) 

print "Y3: " , Y3.get_shape() 

# reshape the output from the third convolution for the fully connected layer 

#YY = tf.reshape(Y3, shape=[-1, 7 * 7 * M]) 

YY = tf.reshape(Y3, shape=[-1, 7 * 7 * M]) 

print "YY: " , YY.get_shape() 

Y4 = tf.nn.relu(tf.matmul(YY, W4) + B4) 

print "Y4: " , Y4.get_shape() 

Ylogits = tf.matmul(Y4, W5) + B5 

print "Ylogits: " , Ylogits.get_shape() 

Y = tf.nn.softmax(Ylogits) 



# cross-entropy loss function (= -sum(Y_i * log(Yi))), normalised for batches of 10 images 
# TensorFlow provides the softmax_cross_entropy_with_logits function to avoid numerical stability 
# problems with log(0) which is NaN 

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=Ylogits, labels=Y_) 

cross_entropy = tf.reduce_mean(cross_entropy) * 10 

# accuracy of the trained model, between 0 (worst) and 1 (best) 

correct_prediction = tf.equal(tf.argmax(Y, 1), tf.argmax(Y_, 1)) 

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 



allweights = tf.concat(0, [tf.reshape(W1, [-1]), tf.reshape(W2, [-1]), tf.reshape(W3, [-1]), tf.reshape(W4, [-1]), tf.reshape(W5, [-1])]) 

allbiases = tf.concat(0, [tf.reshape(B1, [-1]), tf.reshape(B2, [-1]), tf.reshape(B3, [-1]), tf.reshape(B4, [-1]), tf.reshape(B5, [-1])]) 

# training step, the learning rate is a placeholder 

train_step = tf.train.AdamOptimizer(lr).minimize(cross_entropy) 


train_images = tf.train.batch([train_image_file], batch_size=train_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * train_batch_size, allow_smaller_final_batch=True) 

test_images = tf.train.batch([test_image_file], batch_size=test_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * test_batch_size, allow_smaller_final_batch=True) 

train_labels = tf.train.batch([train_image_labels], batch_size=train_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * train_batch_size, enqueue_many=True, allow_smaller_final_batch=True) 

test_labels = tf.train.batch([test_image_labels], batch_size=test_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * test_batch_size, enqueue_many=True, allow_smaller_final_batch=True) 


init = tf.global_variables_initializer() 

sess = tf.Session() 

sess.run(init) 

def training_step(i, update_test_data, update_train_data): 

    train_images_batch = train_images.eval(session=sess) 

    train_images_batch = np.expand_dims(train_images_batch, axis=(3)) 

    train_labels_batch = train_labels.eval(session=sess) 

    test_images_batch = test_images.eval(session=sess) 

    test_images_batch = np.expand_dims(test_images_batch, axis=(3)) 

    test_labels_batch = test_labels.eval(session=sess) 

    # learning rate decay 
    max_learning_rate = 0.003 
    min_learning_rate = 0.0001 
    decay_speed = 2000.0 
    learning_rate = min_learning_rate + (max_learning_rate - min_learning_rate) * math.exp(-i/decay_speed) 


    if update_train_data: 

     a, c, w, b = sess.run([accuracy, cross_entropy, allweights, allbiases], {X: train_images_batch, Y_: train_labels_batch}) 

     print(str(i) + ": accuracy:" + str(a) + " loss: " + str(c) + " (lr:" + str(learning_rate) + ")") 

    if update_test_data: 

     a, c = sess.run([accuracy, cross_entropy], {X: test_images_batch, Y_: test_labels_batch}) 

     print(str(i) + ": ********* epoch " + " ********* test accuracy:" + str(a) + " test loss: " + str(c)) 

    # the backpropagation training step 
    sess.run(train_step, {X: batch_X, Y_: batch_Y, lr: learning_rate}) 

coord = tf.train.Coordinator() 
threads = tf.train.start_queue_runners(coord=coord, sess=sess) 

for i in range(10000+1): 

    training_step(i, i % 100 == 0, i % 20 == 0) 

coord.request_stop() 
coord.join(threads) 

結果から

おかげ

ソースコードの参照:

('Dog: ', 12500, ' Cat: ', 12500) 
W1: (5, 5, 1, 4) 
B1: (4,) 
W2: (5, 5, 4, 8) 
B2: (8,) 
W3: (4, 4, 8, 12) 
B3: (12,) 
W4: (588, 200) 
B4: (200,) 
W5: (200, 2) 
B5: (2,) 
Y1: (?, 224, 224, 4) 
Y2: (?, 112, 112, 8) 
Y3: (?, 56, 56, 12) 
YY: (?, 588) 
Y4: (?, 200) 
Ylogits: (?, 2) 
Traceback (most recent call last): 
    File "convolutional.py", line 306, in <module> 
    training_step(i, i % 100 == 0, i % 20 == 0) 
    File "convolutional.py", line 288, in training_step 
    a, c, w, b = sess.run([accuracy, cross_entropy, allweights, allbiases], {X: train_images_batch, Y_: train_labels_batch}) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 766, in run 
    run_metadata_ptr) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 964, in _run 
    feed_dict_string, options, run_metadata) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1014, in _do_run 
    target_list, options, run_metadata) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1034, in _do_call 
    raise type(e)(node_def, op, message) 
tensorflow.python.framework.errors_impl.InvalidArgumentError: logits and labels must be same size: logits_size=[640,2] labels_size=[10,2] 
    [[Node: SoftmaxCrossEntropyWithLogits = SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](Reshape_1, Reshape_2)]] 

Caused by op u'SoftmaxCrossEntropyWithLogits', defined at: 
    File "convolutional.py", line 229, in <module> 
    cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=Ylogits, labels=Y_) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/ops/nn_ops.py", line 1449, in softmax_cross_entropy_with_logits 
    precise_logits, labels, name=name) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/ops/gen_nn_ops.py", line 2265, in _softmax_cross_entropy_with_logits 
    features=features, labels=labels, name=name) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op 
    op_def=op_def) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2240, in create_op 
    original_op=self._default_original_op, op_def=op_def) 
    File "/home/dragon/.local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1128, in __init__ 
    self._traceback = _extract_stack() 

InvalidArgumentError (see above for traceback): logits and labels must be same size: logits_size=[640,2] labels_size=[10,2] 
    [[Node: SoftmaxCrossEntropyWithLogits = SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](Reshape_1, Reshape_2)]] 

答えて

0

はそれを修正するために管理:

import os 
import tensorflow as tf 
from tensorflow.python.framework import ops 
from tensorflow.python.framework import dtypes 
import numpy as np 
import glob 
import fnmatch 
import matplotlib.pyplot as plt 
from PIL import Image 
import random 
import threading 
import math 

tf.set_random_seed(0) 

def convertToOneHot(vector, num_classes=None): 

    assert isinstance(vector, np.ndarray) 
    assert len(vector) > 0 

     if num_classes is None: 
     num_classes = np.max(vector)+1 
     else: 
     assert num_classes > 0 
     assert num_classes >= np.max(vector) 

    result = np.zeros(shape=(len(vector), num_classes)) 
    result[np.arange(len(vector)), vector] = 1 

    return result.astype(np.float32) 


def make_labels(filenames): 

    n = len(filenames) 

    #y = np.zeros((n,2), dtype = np.int32) 
    #y = np.zeros(shape=[n], dtype = np.float32) 
    label_y = np.zeros((n,2), dtype = np.float32) 
    counter = 0 
    dog = 0 
    cat = 0 

    for i in range(n): 
     # If 'dog' string is in file name assign '1' 
     if fnmatch.fnmatch(filenames[i], '*dog*'): 
      label_y[i,0] = 1 
      #label_y[i] = 1 
      dog += 1 
     else: 
      label_y[i,1] = 1 
      #label_y[i] = 0 
      cat += 1 

    print("Dog: " , dog , " Cat: " , cat) 

    return label_y 

def make_test_labels(filenames): 

    n = len(filenames) 

    test_label_y = np.zeros([n], dtype = np.int32) 

    for i in range(n): 
     test_label_y[i] = random.randrange(0,2) 

    one_hot = convertToOneHot(test_label_y) 

    return one_hot 


train_path = "./data/train/*.jpg" 

test_path = "./data/test1/*.jpg" 

#Training Dataset 

train_files = tf.gfile.Glob(train_path) 

train_image_labels = make_labels(train_files) 

train_filename_queue = tf.train.string_input_producer(train_files, shuffle=False) 

train_image_reader = tf.WholeFileReader() 

train_image_filename, train_image_file = train_image_reader.read(train_filename_queue) 

train_image_file = tf.image.decode_jpeg(train_image_file, 1) 

train_image_file = tf.image.resize_images(train_image_file, [224, 224]) 

train_image_file.set_shape((224, 224, 1)) 

train_image_file = tf.squeeze(train_image_file) 


#Test or Eval Dataset 

test_files = tf.gfile.Glob(test_path) 

test_image_labels = make_test_labels(test_files) 

test_filename_queue = tf.train.string_input_producer(test_files, shuffle=False) 

test_image_reader = tf.WholeFileReader() 

test_image_filename, test_image_file = test_image_reader.read(test_filename_queue) 

test_image_file = tf.image.decode_jpeg(test_image_file, 1) 

test_image_file = tf.image.resize_images(test_image_file, [224, 224]) 

test_image_file.set_shape((224, 224, 1)) 

test_image_file = tf.squeeze(test_image_file) 


train_batch_size = 10 

test_batch_size = 2 

num_preprocess_threads = 1 

min_queue_examples = 256 


X = tf.placeholder(tf.float32, [None, 224, 224, 1]) 

Y_ = tf.placeholder(tf.float32, [None, 2]) 

lr = tf.placeholder(tf.float32) 

pkeep = tf.placeholder(tf.float32) 

# three convolutional layers with their channel counts, and a 
# fully connected layer (tha last layer has 2 softmax neurons) 

K = 4 # first convolutional layer output depth 
L = 8 # second convolutional layer output depth 
M = 12 # third convolutional layer 
N = 200 # fully connected layer 

W1 = tf.Variable(tf.truncated_normal([5, 5, 1, K], stddev=0.1)) # 5x5 patch, 1 input channel, K output channels 

print "W1: " , W1.get_shape() 

B1 = tf.Variable(tf.ones([K])/10) 

print "B1: " , B1.get_shape() 

W2 = tf.Variable(tf.truncated_normal([5, 5, K, L], stddev=0.1)) 

print "W2: " , W2.get_shape() 

B2 = tf.Variable(tf.ones([L])/10) 

print "B2: " , B2.get_shape() 

W3 = tf.Variable(tf.truncated_normal([4, 4, L, M], stddev=0.1)) 

print "W3: " , W3.get_shape() 

B3 = tf.Variable(tf.ones([M])/10) 

print "B3: " , B3.get_shape() 

W4 = tf.Variable(tf.truncated_normal([7 * 7 * M, N], stddev=0.1)) 

print "W4: " , W4.get_shape() 

B4 = tf.Variable(tf.ones([N])/10) 

print "B4: " , B4.get_shape() 

W5 = tf.Variable(tf.truncated_normal([N, 2], stddev=0.1)) 

print "W5: " , W5.get_shape() 

B5 = tf.Variable(tf.ones([2])/10) 

print "B5: " , B5.get_shape() 


# The model 

stride = 1 

Y1 = tf.nn.relu(tf.nn.conv2d(X, W1, strides=[1, stride, stride, 1], padding='SAME') + B1) 

print "Y1: " , Y1.get_shape() 

stride = 6 #changed from 2 to 6 

Y2 = tf.nn.relu(tf.nn.conv2d(Y1, W2, strides=[1, stride, stride, 1], padding='SAME') + B2) 

print "Y2: " , Y2.get_shape() 

stride = 6 #changed from 2 to 6 

Y3 = tf.nn.relu(tf.nn.conv2d(Y2, W3, strides=[1, stride, stride, 1], padding='SAME') + B3) 

print "Y3: " , Y3.get_shape() 

# reshape the output from the third convolution for the fully connected layer 

#YY = tf.reshape(Y3, shape=[-1, 7 * 7 * M]) 

YY = tf.reshape(Y3, shape=[-1, 7 * 7 * M]) 

print "YY: " , YY.get_shape() 

Y4 = tf.nn.relu(tf.matmul(YY, W4) + B4) 

print "Y4: " , Y4.get_shape() 

Ylogits = tf.matmul(Y4, W5) + B5 

print "Ylogits: " , Ylogits.get_shape() 

Y = tf.nn.softmax(Ylogits) 



# cross-entropy loss function (= -sum(Y_i * log(Yi))), normalised for batches of 10 images 
# TensorFlow provides the softmax_cross_entropy_with_logits function to avoid numerical stability 
# problems with log(0) which is NaN 

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=Ylogits, labels=Y_) 

cross_entropy = tf.reduce_mean(cross_entropy) * 10 

# accuracy of the trained model, between 0 (worst) and 1 (best) 

correct_prediction = tf.equal(tf.argmax(Y, 1), tf.argmax(Y_, 1)) 

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 



allweights = tf.concat(0, [tf.reshape(W1, [-1]), tf.reshape(W2, [-1]), tf.reshape(W3, [-1]), tf.reshape(W4, [-1]), tf.reshape(W5, [-1])]) 

allbiases = tf.concat(0, [tf.reshape(B1, [-1]), tf.reshape(B2, [-1]), tf.reshape(B3, [-1]), tf.reshape(B4, [-1]), tf.reshape(B5, [-1])]) 

# training step, the learning rate is a placeholder 

train_step = tf.train.AdamOptimizer(lr).minimize(cross_entropy) 


train_images = tf.train.batch([train_image_file], batch_size=train_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * train_batch_size, allow_smaller_final_batch=True) 

test_images = tf.train.batch([test_image_file], batch_size=test_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * test_batch_size, allow_smaller_final_batch=True) 

train_labels = tf.train.batch([train_image_labels], batch_size=train_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * train_batch_size, enqueue_many=True, allow_smaller_final_batch=True) 

test_labels = tf.train.batch([test_image_labels], batch_size=test_batch_size, num_threads=num_preprocess_threads, capacity=min_queue_examples + 3 * test_batch_size, enqueue_many=True, allow_smaller_final_batch=True) 


init = tf.global_variables_initializer() 

sess = tf.Session() 

sess.run(init) 

def training_step(i, update_test_data, update_train_data): 

    train_images_batch = train_images.eval(session=sess) 

    train_images_batch = np.expand_dims(train_images_batch, axis=(3)) 

    train_labels_batch = train_labels.eval(session=sess) 

    test_images_batch = test_images.eval(session=sess) 

    test_images_batch = np.expand_dims(test_images_batch, axis=(3)) 

    test_labels_batch = test_labels.eval(session=sess) 

    # learning rate decay 
    max_learning_rate = 0.003 
    min_learning_rate = 0.0001 
    decay_speed = 2000.0 
    learning_rate = min_learning_rate + (max_learning_rate - min_learning_rate) * math.exp(-i/decay_speed) 


    if update_train_data: 

     a, c, w, b = sess.run([accuracy, cross_entropy, allweights, allbiases], {X: train_images_batch, Y_: train_labels_batch}) 

     print(str(i) + ": accuracy:" + str(a) + " loss: " + str(c) + " (lr:" + str(learning_rate) + ")") 

    if update_test_data: 

     a, c = sess.run([accuracy, cross_entropy], {X: test_images_batch, Y_: test_labels_batch}) 

     print(str(i) + ": ********* epoch " + " ********* test accuracy:" + str(a) + " test loss: " + str(c)) 

    # the backpropagation training step 
    sess.run(train_step, {X: batch_X, Y_: batch_Y, lr: learning_rate}) 

coord = tf.train.Coordinator() 
threads = tf.train.start_queue_runners(coord=coord, sess=sess) 

for i in range(10000+1): 

    training_step(i, i % 100 == 0, i % 20 == 0) 

coord.request_stop() 
coord.join(threads) 

結果:

0: accuracy:0.6 loss: 11.1554 (lr:0.003) 
0: ********* epoch ********* test accuracy:0.5 test loss: 13.0221 
20: accuracy:0.7 loss: 5.93612 (lr:0.00297114451787) 
40: accuracy:0.5 loss: 7.40466 (lr:0.00294257615259) 
60: accuracy:0.4 loss: 6.7717 (lr:0.00291429204729) 
80: accuracy:0.5 loss: 7.07674 (lr:0.00288628937354) 
100: accuracy:0.6 loss: 7.0582 (lr:0.00285856533105) 
100: ********* epoch ********* test accuracy:0.5 test loss: 7.8989 
120: accuracy:0.3 loss: 6.95063 (lr:0.00283111714739) 
140: accuracy:0.5 loss: 6.57362 (lr:0.00280394207773) 
160: accuracy:0.4 loss: 7.82804 (lr:0.00277703740452) 
180: accuracy:0.6 loss: 6.80486 (lr:0.00275040043729) 
200: accuracy:0.6 loss: 6.98334 (lr:0.0027240285123) 
200: ********* epoch ********* test accuracy:0.5 test loss: 6.71705 
220: accuracy:0.9 loss: 4.97062 (lr:0.00269791899236) 
240: accuracy:0.5 loss: 5.81752 (lr:0.00267206926648) 
260: accuracy:0.6 loss: 6.53955 (lr:0.00264647674967) 
280: accuracy:0.3 loss: 8.13235 (lr:0.00262113888266) 
300: accuracy:0.5 loss: 6.55135 (lr:0.00259605313163) 
300: ********* epoch ********* test accuracy:0.5 test loss: 6.69505 
320: accuracy:0.7 loss: 6.20664 (lr:0.002571216988) 
340: accuracy:0.6 loss: 6.23909 (lr:0.00254662796813) 
360: accuracy:0.8 loss: 4.65571 (lr:0.00252228361309) 
380: accuracy:0.5 loss: 8.66489 (lr:0.00249818148844) 
400: accuracy:0.6 loss: 6.5182 (lr:0.00247431918393) 
400: ********* epoch ********* test accuracy:0.0 test loss: 7.87964 
420: accuracy:0.8 loss: 5.66837 (lr:0.00245069431331) 
440: accuracy:0.5 loss: 6.87555 (lr:0.00242730451409) 
460: accuracy:0.7 loss: 5.9571 (lr:0.00240414744726) 
480: accuracy:0.6 loss: 6.63313 (lr:0.00238122079709) 
500: accuracy:0.7 loss: 6.31318 (lr:0.00235852227091) 
500: ********* epoch ********* test accuracy:0.0 test loss: 8.10029 
520: accuracy:0.7 loss: 7.07258 (lr:0.00233604959883) 
540: accuracy:0.5 loss: 7.05975 (lr:0.00231380053358) 
560: accuracy:0.5 loss: 7.25364 (lr:0.00229177285022) 
580: accuracy:0.6 loss: 6.73549 (lr:0.00226996434598) 
600: accuracy:0.8 loss: 4.62922 (lr:0.00224837283998) 
600: ********* epoch ********* test accuracy:0.5 test loss: 6.42755 
620: accuracy:0.6 loss: 6.97526 (lr:0.00222699617305) 
640: accuracy:0.7 loss: 5.79574 (lr:0.00220583220751) 
660: accuracy:0.7 loss: 6.3626 (lr:0.00218487882695) 
680: accuracy:0.8 loss: 7.46478 (lr:0.00216413393601) 
700: accuracy:0.6 loss: 5.08642 (lr:0.00214359546018) 
700: ********* epoch ********* test accuracy:0.5 test loss: 13.1772 
720: accuracy:0.5 loss: 7.97948 (lr:0.00212326134561) 
740: accuracy:0.5 loss: 7.21764 (lr:0.00210312955885) 
760: accuracy:0.7 loss: 6.36856 (lr:0.00208319808672) 
780: accuracy:0.7 loss: 5.55039 (lr:0.00206346493604) 
800: accuracy:0.6 loss: 7.82716 (lr:0.0020439281335) 
800: ********* epoch ********* test accuracy:0.0 test loss: 8.27366 
820: accuracy:0.5 loss: 6.67392 (lr:0.0020245857254) 
840: accuracy:0.6 loss: 6.52732 (lr:0.00200543577746) 
860: accuracy:0.6 loss: 6.47456 (lr:0.0019864763747) 
880: accuracy:0.8 loss: 5.34777 (lr:0.00196770562114) 
900: accuracy:0.5 loss: 6.67296 (lr:0.0019491216397) 
900: ********* epoch ********* test accuracy:0.0 test loss: 9.64283 
920: accuracy:0.7 loss: 6.66137 (lr:0.00193072257197) 
940: accuracy:0.9 loss: 5.7024 (lr:0.00191250657802) 
960: accuracy:0.7 loss: 6.43189 (lr:0.00189447183624) 
980: accuracy:0.7 loss: 5.07373 (lr:0.00187661654313) 
1000: accuracy:0.7 loss: 6.38296 (lr:0.00185893891317) 
1000: ********* epoch ********* test accuracy:0.5 test loss: 8.52038 
1020: accuracy:0.8 loss: 9.55432 (lr:0.00184143717856) 
1040: accuracy:0.6 loss: 7.09334 (lr:0.00182410958911) 
1060: accuracy:0.4 loss: 7.11957 (lr:0.00180695441207) 
1080: accuracy:0.6 loss: 7.0127 (lr:0.00178996993188) 
1100: accuracy:0.4 loss: 7.69579 (lr:0.0017731544501) 
1100: ********* epoch ********* test accuracy:0.5 test loss: 11.4886 
1120: accuracy:0.7 loss: 6.882 (lr:0.00175650628516) 
1140: accuracy:0.8 loss: 5.1929 (lr:0.00174002377223) 
1160: accuracy:0.3 loss: 6.76535 (lr:0.00172370526304) 
1180: accuracy:0.5 loss: 7.55367 (lr:0.00170754912573) 
1200: accuracy:0.7 loss: 5.56166 (lr:0.00169155374467) 
1200: ********* epoch ********* test accuracy:0.5 test loss: 7.25217 
1220: accuracy:0.8 loss: 5.60191 (lr:0.00167571752032) 
1240: accuracy:0.6 loss: 6.82252 (lr:0.00166003886902) 
1260: accuracy:0.9 loss: 5.644 (lr:0.00164451622292) 
1280: accuracy:0.8 loss: 5.7729 (lr:0.00162914802972) 
1300: accuracy:0.7 loss: 5.87659 (lr:0.00161393275261) 
1300: ********* epoch ********* test accuracy:0.5 test loss: 5.97413 
1320: accuracy:0.5 loss: 7.00393 (lr:0.00159886887003) 
1340: accuracy:0.5 loss: 6.74683 (lr:0.00158395487558) 
1360: accuracy:0.5 loss: 6.34526 (lr:0.00156918927786) 
1380: accuracy:0.5 loss: 7.20938 (lr:0.00155457060029) 
1400: accuracy:0.5 loss: 6.90222 (lr:0.001540097381) 
1400: ********* epoch ********* test accuracy:1.0 test loss: 5.80986 
1420: accuracy:0.7 loss: 6.27892 (lr:0.00152576817264) 
1440: accuracy:0.6 loss: 7.12203 (lr:0.00151158154228) 
1460: accuracy:0.6 loss: 6.3593 (lr:0.00149753607126) 
1480: accuracy:0.5 loss: 6.73234 (lr:0.00148363035501) 
1500: accuracy:0.7 loss: 5.93877 (lr:0.00146986300295) 
1500: ********* epoch ********* test accuracy:0.0 test loss: 13.2649 
1520: accuracy:0.5 loss: 6.56755 (lr:0.00145623263833) 
1540: accuracy:0.2 loss: 11.2914 (lr:0.0014427378981) 
1560: accuracy:0.7 loss: 6.40623 (lr:0.00142937743279) 
1580: accuracy:0.8 loss: 5.21643 (lr:0.00141614990632) 
1600: accuracy:0.6 loss: 7.13112 (lr:0.00140305399594) 
1600: ********* epoch ********* test accuracy:0.5 test loss: 7.00448 
1620: accuracy:0.8 loss: 6.04726 (lr:0.00139008839205) 
1640: accuracy:0.6 loss: 5.6949 (lr:0.00137725179807) 
1660: accuracy:0.4 loss: 8.35133 (lr:0.00136454293033) 
1680: accuracy:0.7 loss: 5.67702 (lr:0.00135196051794) 
1700: accuracy:0.7 loss: 5.75319 (lr:0.00133950330265) 
1700: ********* epoch ********* test accuracy:0.5 test loss: 4.69712 
1720: accuracy:0.7 loss: 5.62581 (lr:0.00132717003872) 
1740: accuracy:0.5 loss: 6.94164 (lr:0.00131495949282) 
1760: accuracy:0.8 loss: 6.81993 (lr:0.00130287044388) 
1780: accuracy:0.6 loss: 6.46852 (lr:0.00129090168298) 
1800: accuracy:0.7 loss: 5.52436 (lr:0.00127905201325) 
1800: ********* epoch ********* test accuracy:1.0 test loss: 5.64173 
1820: accuracy:0.6 loss: 5.64919 (lr:0.0012673202497) 
1840: accuracy:0.6 loss: 6.43817 (lr:0.00125570521915) 
1860: accuracy:0.6 loss: 6.09095 (lr:0.00124420576008) 
1880: accuracy:0.7 loss: 5.98002 (lr:0.0) 
1900: accuracy:0.8 loss: 5.04342 (lr:0.00122154896802) 
1900: ********* epoch ********* test accuracy:0.5 test loss: 5.80969 
1920: accuracy:0.5 loss: 6.73896 (lr:0.00121038936933) 
1940: accuracy:0.6 loss: 5.74824 (lr:0.0011993408105) 
1960: accuracy:0.9 loss: 5.07425 (lr:0.00118840218667) 
1980: accuracy:0.8 loss: 5.07815 (lr:0.00117757240396) 
2000: accuracy:0.6 loss: 6.49868 (lr:0.0011668503794) 
2000: ********* epoch ********* test accuracy:0.5 test loss: 5.17815 
2020: accuracy:0.7 loss: 6.32198 (lr:0.00115623504076) 
2040: accuracy:0.5 loss: 6.81228 (lr:0.0011457253265) 
2060: accuracy:0.7 loss: 6.27763 (lr:0.00113532018565) 
2080: accuracy:0.4 loss: 6.48217 (lr:0.00112501857768) 
2100: accuracy:0.8 loss: 5.47317 (lr:0.00111481947242) 
2100: ********* epoch ********* test accuracy:0.5 test loss: 6.97906 
2120: accuracy:0.7 loss: 6.64062 (lr:0.00110472184996) 
2140: accuracy:0.4 loss: 7.58298 (lr:0.00109472470051) 
2160: accuracy:0.5 loss: 7.05855 (lr:0.00108482702437) 
2180: accuracy:0.7 loss: 5.3101 (lr:0.00107502783175) 
2200: accuracy:0.4 loss: 7.99556 (lr:0.00106532614272) 
2200: ********* epoch ********* test accuracy:0.0 test loss: 30.0326 
2220: accuracy:0.5 loss: 5.50862 (lr:0.00105572098712) 
2240: accuracy:0.7 loss: 7.57991 (lr:0.00104621140441) 
2260: accuracy:0.9 loss: 4.57821 (lr:0.00103679644362) 
2280: accuracy:0.5 loss: 6.55349 (lr:0.00102747516327) 
2300: accuracy:0.4 loss: 7.27755 (lr:0.0010182466312) 
2300: ********* epoch ********* test accuracy:0.5 test loss: 8.20956 
2320: accuracy:0.7 loss: 5.98563 (lr:0.00100910992456) 
2340: accuracy:0.7 loss: 5.72076 (lr:0.00100006412967) 
2360: accuracy:0.7 loss: 5.22523 (lr:0.000991108341943) 
2380: accuracy:0.8 loss: 4.87689 (lr:0.000982241665793) 
2400: accuracy:0.8 loss: 5.14703 (lr:0.000973463214545) 
2400: ********* epoch ********* test accuracy:0.5 test loss: 6.0281 
2420: accuracy:0.7 loss: 6.03927 (lr:0.000964772110347) 
2440: accuracy:0.7 loss: 4.91816 (lr:0.00095616748408) 
2460: accuracy:0.5 loss: 6.61033 (lr:0.000947648475274) 
2480: accuracy:0.7 loss: 4.98853 (lr:0.000939214232023) 
2500: accuracy:0.5 loss: 6.02745 (lr:0.000930863910895) 
2500: ********* epoch ********* test accuracy:0.5 test loss: 6.64094 
2520: accuracy:0.8 loss: 5.77956 (lr:0.000922596676849) 
2540: accuracy:0.5 loss: 7.03326 (lr:0.000914411703157) 
2560: accuracy:0.9 loss: 3.64503 (lr:0.000906308171314) 
2580: accuracy:0.5 loss: 7.78428 (lr:0.00089828527096) 

精度が悪いと思われます.........レイヤーを追加する必要がありますか?

何か間違っていますか?

おかげ

+0

精度が良くない場合は、プーリング層を追加したり、アーキテクチャがより良くする(あなたがAlexnetのように分類ネットワークからのインスピレーション/アイデアを取ることができ、Imagenet etc.Youはハイパーの適切な組み合わせを見つける必要があります本当に良い精度を得るためのパラメータ。 –

関連する問題