我应该用open和tensa编写程序 使用卷积神经网络进行手语识别。 我使用了MNIST分类器的示例代码,可以找到here和 我试图用opencv来加载训练 图像,然后摄像头捕捉作为CNN的输入。 现在,我对模型的训练有一个问题 出错时:
值错误:需要变量conv2d/kernel的初始值设定项
整个错误日志可以找到here
正在使用的框架版本:
可以看到为网络准备训练数据的代码 在第一个代码片段中。它只是读了一堆不同的jpg照片 手势,调整图像大小并将其放入numpy数组中
def prepareTrainingData(trainingLetterMaxId, training_image_size):
training_images = []
training_labels = []
for letter in training_letters:
for i in range(0, trainingLetterMaxId):
read_image = cv2.imread('/home/radkye/Documents/ASLRecognizer/images/'
+ letter + '/' + letter + '_' + str(i) + '.jpg', 0)
resized = np.array(cv2.resize(read_image, (training_image_size, training_image_size)))
flattened = resized.ravel()
image = tf.cast(flattened, tf.float32)
training_images.append(image)
net_output = np.zeros(len(training_letters))
net_output[letters_to_indices_map[letter]] = 1
training_labels.append(net_output)
result = np.array(training_images)
labels_result = np.array(training_labels)
return result, labels_result
training_data, training_labels = prepareTrainingData(100, 60)
train_labels_int = np.asarray(training_labels, dtype=np.int32)
mnist_classifier = tf.estimator.Estimator(
model_fn=cnn.cnn_model_fn,
model_dir="/home/radkye/Documents/studia/ASLRecognizer_AutoTestVersion/asl_cnn_model")
tensors_to_log = {"probabilities": "softmax_tensor"}
logging_hook = tf.train.LoggingTensorHook(
tensors=tensors_to_log, every_n_iter=50)
train_input_fn = tf.estimator.inputs.numpy_input_fn(
x={"x": training_data},
y=train_labels_int,
batch_size=3600,
num_epochs=None,
shuffle=True)
mnist_classifier.train(
input_fn=train_input_fn,
steps=20000,
hooks=[logging_hook])
cnn模式定义为:
^{pr2}$拜托,有人能帮我认识到数据有什么问题吗 我输入CNN模型的结构?问题可能在于我准备训练数据的方式,这些数据可以在第一个代码片段中看到。 我对张量流还不太流利。在
否则,可能有人有任何教程或示例,其中opencv与tensorflow一起用于创建CNN。我没能找到什么东西 我需要这样。在
我将非常感谢任何帮助。 提前谢谢你。在
[-1, 12 * 12 * 64]
-给定填充层和maxpool层,这应该是[-1, 15 * 15 * 64]
,因为60/2/2=15也就是说,我不确定这是真正的或唯一的问题,因为我没有办法重现你的问题。在
相关问题 更多 >
编程相关推荐