<p>在训练keras模型之前,我对图像执行了以下操作:</p>
<pre><code>for img in os.listdir(path):
# convert to array
img_array = cv2.imread(os.path.join(path,img) ,cv2.IMREAD_GRAYSCALE)
# resize to normalize data size
new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
# add this to our training_data list
training_data.append([new_array, class_num])
#shuffle the data
random.shuffle(training_data)
#empty lists (X for features, y for labels)
X = []
y = []
for features,label in tqdm(training_data):
X.append(features)
y.append(label)
X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)
</code></pre>
<p>我正在训练模特。以下是起始层:</p>
^{pr2}$
<p>我使用训练过的模型来得到一些预测(<strong>我用python训练模型,然后将模型加载到Tensorflow.js</strong>)</p>
<p>用于预测的代码段</p>
<pre><code>let imageTensor = tf.fromPixels(image);
model.predict(imageTensor).print();
</code></pre>
<p>我得到以下错误:</p>
<blockquote>
<p>Uncaught Error: Error when checking : expected conv2d_input to have 4
dimension(s), but got array with shape [275,183,3]</p>
</blockquote>
<p>将上述代码更改为</p>
<pre><code>let imageTensor = tf.fromPixels(image).resizeNearestNeighbor([50,50]).mean(2).toInt().expandDims(2);
model.predict(imageTensor).print();
</code></pre>
<p>给出以下错误:</p>
<blockquote>
<p>Uncaught Error: Error when checking : expected conv2d_input to have 4
dimension(s), but got array with shape [50,50,1]</p>
</blockquote>
<p>最后,当我这样做的时候</p>
<pre><code>let imageTensor = tf.fromPixels(image).resizeNearestNeighbor([50,50]).toInt().expandDims();
model.predict(imageTensor).print();
</code></pre>
<p>我得到以下错误:</p>
<blockquote>
<p>Error when checking : expected conv2d_input to have shape
[null,50,50,1] but got array with shape [1,50,50,3].</p>
</blockquote>