前提・実現したいこと
犬猫認識をtensorflowで動かそうとしています。
KaggleからDLしたデータをTFRecordにデータを保存しました。
そして次にCNNによるモデル構築をするところでエラーが出ます。
発生している問題・エラーメッセージ
python
1 2with tf.name_scope('layer1'): 3 conv1 = tf.conv2d(X, filters=32, kernel_size=4, strides=1, activation=tf.nn.relu, name='conv1') 4 pool1 = tf.nn.max_pool(conv1, ksize=[1,2,2,1], strides=[1,2,2,1], padding='VALID', name='pool1') 5
AttributeError: module 'tensorflow' has no attribute 'conv2d'
と出ます。犬猫認識をtensorboardで可視化までするのを目標としていて、
参考としている記事等がtensorflow1.Xのバージョンのためだと考えています。ver2.Xからの初心者のため対応が分かりません。
TFRecordにデータを保存するところまでは2.Xで動くよう修正できましたが、CNNの工程で躓きました、、、
どこを変えればいいのかご教授願います。
TFRecordにデータを保存までのコード
import numpy as np import tensorflow as tf import os import glob cat_dir ='C:\Users\...\Downloads\23777_30378_bundle_archive\training_set\training_set\cats\' dog_dir ='C:\Users\...\Downloads\23777_30378_bundle_archive\training_set\training_set\dogs\' image_paths = [] labels = [] for fname in os.listdir(cat_dir): if '.jpg' in fname: image_paths.append(cat_dir + fname) labels.append(1) for fname in os.listdir(dog_dir): if '.jpg' in fname: image_paths.append(dog_dir + fname) labels.append(0) shuffle_ind = np.random.permutation(len(labels)) image_paths = np.array(image_paths)[shuffle_ind] labels = np.array(labels)[shuffle_ind] def _bytes_feature(value): return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value])) def _float_feature(value): return tf.train.Feature(float_list=tf.train.FloatList(value=[value])) def _int64_feature(value): return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) import io from PIL import Image with tf.io.TFRecordWriter('training_data.tfrecords') as writer: for fname, label in zip(image_paths[:-1000], labels[:-1000]): image = Image.open(fname) image_np = np.array(image) image_shape = image_np.shape image = open(fname, 'rb').read() feature = { 'height' : _int64_feature(image_shape[0]), 'width' : _int64_feature(image_shape[1]), 'channel' : _int64_feature(image_shape[2]), 'image_raw' : _bytes_feature(image), 'label' : _int64_feature(label) } tf_example = tf.train.Example(features=tf.train.Features(feature=feature)) writer.write(tf_example.SerializeToString()) with tf.io.TFRecordWriter('test_data.tfrecords') as writer: for fname, label in zip(image_paths[-1000:], labels[-1000:]): image = Image.open(fname) image_np = np.array(image) image_shape = image_np.shape image = open(fname, 'rb').read() feature = { 'height' : _int64_feature(image_shape[0]), 'width' : _int64_feature(image_shape[1]), 'channel' : _int64_feature(image_shape[2]), 'image_raw' : _bytes_feature(image), 'label' : _int64_feature(label) } tf_example = tf.train.Example(features=tf.train.Features(feature=feature)) writer.write(tf_example.SerializeToString())
試したこと
kerasを用いるのかなと考えております。
補足情報(FW/ツールのバージョンなど)
Anaconda3
tensorflow2.3.0
現在参考にしている記事
訓練の工程でsessを使っているので、この段階でも修正が必要だろうと予想しています
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。