GANで生成した画像をベクトル化するVevtorizer実装
VEVTORIZER実装続き
エラー
AttributeError: 'VectorizerUpdater' object has no attribute 'vec_optimizer'
vec_optimizerではなくget_optimizer修正
エラー
TypeError: 'type' object cannot be interpreted as an integer
z = Variable(xp.asarray(gen.make_hidden(batchsize, self.device)))#100次元ベクトルの生成
x_fake = gen(z)#3次元の偽画像をGeneraterで生成
vec_array = vec(x_fake)#偽画像をVectorizerで読み込み配列化
100次元の乱数ベクトルを生成するところをHiddenDatasetsというClassでデータセットとしてまとめていたが、よくわからなくなったのでVectorizerUpdater()に乱数ベクトルを生成する関数を追加した。
引数とかもよくわからなくなったので、
def __init__に
n_hidden = 100
self.n_hidden = n_hiddenを無理やり追加して初期値を設定した。
net.pyに作ったVectorizerのモデルは、Descripterのモデルの全結合層のところを変えて、出力が100次元になるようにした。
make_hiddenメソッドを二か所で用いて、二種類の乱数配列を生成していた。
なのでupdaterを大幅改変してデータセットで作った乱数配列を作るようにした。
二乗誤差関数
chainer.functions.mean_squared_error(random_array, vec_array)
random_arrayとvec_arrayの配列が[1,100,1,1]と[1,100]で誤差の計算が行えずにエラーが出た。
なのでデータセットで生成されるrandom_arrayの型を変更して型を合わせたらエラーが治った。