機能のための寸法を維持するようにどのようにcvtColor階調機能を調整することができる:私は入力32x32x3画像(R/G/Bの3)場合cv2.cvtColor(IMG、cv2.COLOR_BGR2GRAY)それはRGB
32x32の画像を出力します。しかし、代わりに32x32x1の画像を返してテンソルフローに使用できるようにする必要があります。どのように機能を調整するのですか? TensorFlowで
機能のための寸法を維持するようにどのようにcvtColor階調機能を調整することができる:私は入力32x32x3画像(R/G/Bの3)場合cv2.cvtColor(IMG、cv2.COLOR_BGR2GRAY)それはRGB
32x32の画像を出力します。しかし、代わりに32x32x1の画像を返してテンソルフローに使用できるようにする必要があります。どのように機能を調整するのですか? TensorFlowで
、あなたはtf.expand_dims(img, 2)
操作やTensorFlowのインデックス演算子を使用して32x32x1テンソルに32×32の行列を変換することができます:
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_tensor = tf.constant(img)
img_expanded = tf.expand_dims(img, 2) # or `img[:, :, tf.newaxis]`
同じことがnumpyののインデックスを使用して達成することができます。
import numpy as np
# ...
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_expanded = img[:, :, np.newaxis]
ありがとうございます。私は前処理ステップでグレースケール変換を行っているので、まだtfを関与させたくありません。 tfなしでそれを行う別の方法はありますか? – megashigger
もちろん、NumPyでも同じように行うことができます(更新された回答を参照)。 – mrry
こんにちは、 32x32は1ビット深さの画像です。 – Monza