在TensorFlow中使用CIFAR-100数据集训练Resnet-50,无法获得良好的准确性

时间:2019-06-30 18:12:37

标签: tensorflow resnet

我正在尝试通过cifar-100数据集在tensorflow中使用resnet-50模型。我已经使用内置的resnet_v1_50在tensorflow中创建模型,其头部具有两个完全连接的层,但是我的验证精度接近37%。是问题吗?我配置错误定义和配置resnet_v1_50吗?我的模型创建代码如下。

import tensorflow as tf
from tensorflow.contrib.slim.python.slim.nets import resnet_v1


X = tf.placeholder(dtype=tf.float32, shape=[None, 32, 32, 3])

Y = tf.placeholder(dtype=tf.float32, shape=[None, 100])


net, end_points = resnet_v1.resnet_v1_50(X,global_pool=False,is_training=True)

flattened = tf.contrib.layers.flatten(net)

dense_fc1 = tf.layers.dense(inputs=flattened,units=625, activation=tf.nn.relu,kernel_initializer=tf.contrib.layers.xavier_initializer())

dropout_fc1 = tf.layers.dropout(inputs=dense_fc1,rate=0.5, training=self.training)

logits = tf.layers.dense(inputs=dropout_fc1, units=num_classes,kernel_initializer = tf.contrib.layers.xavier_initializer())

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y))

optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)

1 个答案:

答案 0 :(得分:0)

我认为您有一个额外的致密层。 ResNet使用具有softmax和dist: xenial # required for Python >= 3.7 services: - xvfb language: python python: - "3.6" - "3.7" # command to install dependencies install: - pip install -r requirements.txt # command to run tests script: - pytest 的单个完全连接层。

您可能还需要确保正确设置了超参数,例如learning_rate和weight_decay,并且您的输入处理管道也正确。

这里是一个额外的链接,用于查看您的管道是否类似于working solution