AlexNet系列I:基于Tensorflow 模型代码

本文档介绍了如何使用Tensorflow实现AlexNet模型,应用于Udacity的交通灯检测项目。包含4个部分:train.py负责训练,test.py进行测试,model.py定义模型,images.py处理图像。
摘要由CSDN通过智能技术生成

目录

AlexNet

1. train.py

2. test.py

3. model.py

4. images.py


AlexNet

以下代码是针对 Udacity Traffic light detection的应用:

1. train.py

import tensorflow as tf

import model
import utils
import images


def get_loss(result, y):
    cross_entropy = tf.nn.sigmoid_cross_entropy_with_logits(logits=result, labels=y)
    return tf.reduce_mean(cross_entropy)


def get_optimizer(loss):
    train_variables = tf.trainable_variables()
    optimizer = tf.train.AdamOptimizer(learning_rate=utils.lr).minimize(loss, var_list=train_variables)
    return optimizer


def train():
    x_train, y_train, _ = images.read_traffic_light(True)
    x_test, y_test, _ = images.read_traffic_light(False)

    train_batches = x_train.shape[0]

    x, y, one_hot, result = model.get_model(is_train=True)
    loss = get_loss(result, one_hot)
    optimizer = get_optimizer(loss)

    saver = tf.train.Saver()
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())

        for epoch in range(utils.epochs):
            for batch in range(train_batches // utils.batch_size):
                start = batch * utils.batch_size
                next_x = x_train[start:start + utils.batch_size]
                next_y = y_train[start:start + utils.batch_size]

                sess.run(optimizer, feed_dict={x: next_x, y: next_y})

            loss_result = sess.run(loss, feed_dict={x: x_test, y: y_test})
            print("epoch: {}, loss: {}".format(epoch, loss_result))

        saver.save(sess, "./result/result.ckpt")


if __name__ == '__main__':
    train()

2. tes

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值