【发布时间】:2022-01-23 16:58:02
【问题描述】:
我正在研究使用 tensorflow 和 inception resnet v2 架构训练图像的模型,但无法训练这个模型,我试图训练它,但每次我得到
AttributeError: module 'tensorflow.compat.v1' has no attribute 'fit'
import tensorflow.compat.v1 as tf
import inception_resnet_v2 as incep_v2
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdm
import selectivesearch
import matplotlib.patches as mpatches
import pandas as pd
import random
tf.disable_eager_execution()
# ------------------------------------------------------------------------------
# Configurations
# ------------------------------------------------------------------------------
IMG_SIZE = 150
TRAIN_DIR = "./dataset/train_images"
TEST_DIR = "./dataset/test_images"
data = pd.read_csv("./dataset/train.csv")
data = data.iloc[0:100, :]
# ------------------------------------------------------------------------------
# Read Train Image
# ------------------------------------------------------------------------------
def create_train_data():
train_data = []
for ind in data.index:
path = os.path.join(TRAIN_DIR, data["image_name"][ind])
img_data = cv2.imread(path)
img_data = cv2.resize(img_data, (IMG_SIZE, IMG_SIZE))
train_data.append([np.array(img_data), data["label"][ind]])
# fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(6, 6))
# ax.imshow(img_data)
# plt.show()
random.shuffle(train_data)
np.save('train_data.npy', train_data)
return train_data
def create_test_data():
test_data = []
for img in os.listdir(TEST_DIR):
path = os.path.join(TEST_DIR, img)
img_data = cv2.imread(path)
img_data = cv2.resize(img_data, (IMG_SIZE, IMG_SIZE))
test_data.append(np.array(img_data))
break
random.shuffle(test_data)
return test_data
train_data = create_train_data()
test_data = create_test_data()
# ------------------------------------------------------------------------------
# Declarations
# ------------------------------------------------------------------------------
def define_model(model, is_training):
model.Image = tf.placeholder(tf.float32, shape=[None, IMG_SIZE, IMG_SIZE, 3])
with incep_v2.slim.arg_scope(incep_v2.inception_resnet_v2_arg_scope()):
model.logits, model.end_points = incep_v2.inception_resnet_v2(model.Image, is_training=is_training)
class Model_Class:
def __init__(self, is_training):
define_model(self, is_training=is_training)
sess = tf.Session()
# ------------------------------------------------------------------------------
# Create Model
# ------------------------------------------------------------------------------
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
with tf.device('/cpu:0'):
model = Model_Class(True)
这是我使用 inception resnet v2 架构制作 tensorflow 模型的代码,我不知道如何训练我的数据集。有什么帮助吗?
【问题讨论】:
-
如果你安装了 TF2,你不需要使用 v1 兼容来训练 inception Resnet。 TF2 keras 应用程序已经有了模型架构和权重
标签: python tensorflow machine-learning deep-learning