会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132469个问题
Python 全系列/第二阶段:Python 深入与提高/文件处理 13111楼

# 使用迁移学习的思想,以VGG16作为模板搭建模型,训练识别手写字体
# 引入VGG16模块
from keras.applications.vgg16 import VGG16

# 其次加载其他模块
from keras.layers import Input #输入层
from keras.layers import Flatten #压扁它
from keras.layers import Dense #全连接层
from keras.layers import Dropout #防止过拟合
from keras.models import Model #创建模型
from keras.optimizers import SGD #我们这里用随机梯度下降,当然我们也可以用其他的优化器

# 加载字体库作为训练样本
from keras.datasets import mnist

# 加载OpenCV(在命令行中窗口中输入pip install opencv-python),这里为了后期对图像的处理,
# 大家使用pip install C:\Users\28542\Downloads\opencv_python-3.4.1+contrib-cp36-cp36m-win_amd64.whl
# 比如尺寸变化和Channel变化。这些变化是为了使图像满足VGG16所需要的输入格式
import cv2
import h5py as h5py
import numpy as np

# 建立一个模型,其类型是Keras的Model类对象,我们构建的模型会将VGG16顶层去掉,只保留其余的网络
# 结构。这里用include_top = False表明我们迁移除顶层以外的其余网络结构到自己的模型中
# VGG模型对于输入图像数据要求高宽至少为48个像素点,由于硬件配置限制,我们选用48个像素点而不是原来
# VGG16所采用的224个像素点。即使这样仍然需要24GB以上的内存,或者使用数据生成器

model_vgg = VGG16(include_top=False, pooling='avg', weights='imagenet', input_shape=(48, 48, 3))
""" weights='imagenet'是将大赛用的那份权重数据给放到这里用"""
for layer in model_vgg.layers:
    layer.trainable = False
"""layer.trainable = False  这里设置为false之后就可以往原来的数据集增加新的数据"""
model = Flatten(name = 'flatten')(model_vgg.output)#这里他可以拿到全连接层输出的一些数据
model = Dense(4096, activation='relu', name='fc1')(model)
"""从第一个dense开始之前去掉的全连接层,从这里接入新的全连接层,节点数设置为4096个"""
model = Dense(4096, activation='relu', name='fc2')(model)
"""然后在把上面做了全连接的这一层 在接在新的全连接层"""
model = Dropout(0.5)(model)#这里呢就是在做一个dropout防止过拟合
model = Dense(10, activation='softmax')(model)#手写数字只有十个类别,所以,这里最后的输出层只设置为10个隐藏节点
model_vgg_mnist = Model(inputs=model_vgg.input, outputs=model, name='vgg16')
"""这里我们创建一个model模型,然后整个model模型的输入设置为inputs=model_vgg.input,也就是输入层是继承model_vgg.input,
输出层继承outputs=model"""
# 打印模型结构,包括所需要的参数
model_vgg_mnist.summary()
'''
model_vgg = VGG16(include_top=False, weights='imagenet', input_shape=(224, 224, 3))
for layer in model_vgg.layers:
    layer.trainable = False
model = Flatten()(model_vgg.output)
model = Dense(4096, activation='relu', name='fc1')(model)
model = Dense(4096, activation='relu', name='fc2')(model)
model = Dropout(0.5)(model)
model = Dense(10, activation='softmax', name='prediction')(model)
model_vgg_mnist_pretrain = Model(model_vgg.input, model, name='vgg16_pretrain')

model_vgg_mnist_pretrain.summary()
'''
"""
# 新的模型不需要训练原有卷积结构里面的1471万个参数,但是注意参数还是来自于最后输出层前的两个
# 全连接层,一共有1.2亿个参数需要训练
sgd = SGD(lr=0.05, decay=1e-5)
model_vgg_mnist.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])

# 因为VGG16对网络输入层的要求,我们用OpenCV把图像从32*32变成224*224,把黑白图像转成RGB图像
# 并把训练数据转化成张量形式,供keras输入

(X_train, y_train), (X_test, y_test) = mnist.load_data("../test_data_home")
# X_train, y_train = X_train[:10000], y_train[:10000]
# X_test, y_test = X_test[:1000], y_test[:1000]
X_train = [cv2.cvtColor(cv2.resize(i, (48, 48)), cv2.COLOR_GRAY2RGB)
           for i in X_train]
# 下面concatenate做的事情是把每个样本按照行堆叠在一起,因为是np下面的方法,所以返回的是ndarray
# np.newaxis它本质是None,arr是(48,48,3),arr[None]是(1,48,48,3)
X_train = np.concatenate([arr[np.newaxis] for arr in X_train]).astype('float32')
X_test = [cv2.cvtColor(cv2.resize(i, (48, 48)), cv2.COLOR_GRAY2RGB)
          for i in X_test]
X_test = np.concatenate([arr[np.newaxis] for arr in X_test]).astype('float32')

print(X_train.shape)
print(X_test.shape)

X_train /= 255
X_test /= 255


def tran_y(y):
    y_ohe = np.zeros(10)
    y_ohe[y] = 1
    return y_ohe


y_train_ohe = np.array([tran_y(y_train[i]) for i in range(len(y_train))])
y_test_ohe = np.array([tran_y(y_test[i]) for i in range(len(y_test))])

model_vgg_mnist.fit(X_train, y_train_ohe, validation_data=(X_test, y_test_ohe),
                    epochs=100, batch_size=100)
# model_vgg_mnist_pretrain.summary()


"""

image.png

老师,我一直登录不了这个网站下载这个文件,怎么办?

Python 全系列/第二十四阶段:人工智能基础_深度学习理论和实战(旧)/Keras框架 13112楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 13113楼
Python 全系列/第四阶段:函数式编程和核心特性/python新特性 13114楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 13115楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 13116楼
JAVA 全系列/(旧的隐藏)第二十一阶段:百战商城项目(Spring Cloud最新架构)/百战商城项目 13117楼
Python 全系列/第一阶段:Python入门/面向对象 13118楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 13119楼
Python 全系列/第一阶段:Python入门/控制语句 13120楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./iconfont.css">
    <style>
 
        *{
            margin: 0;
            padding: 0;
        }
 
        body{
            background-color: #f1f1f1;
        }
 
        .slide{
            width: 234px;
            height: 420px;
            background-color: rgba(105,101, 101, 0.6);
            padding: 20px 0;
            margin: 100px;
            position: relative;
        }
 
        .slide ul{
            list-style: none;
        }
 
        .slide ul li{
            width: 100%;
            height: 42px;
            line-height: 42px;
            text-align: left;
            padding-left: 30px;
            box-sizing: border-box;
        }
 
        .slide ul li:hover{
            background-color: #ff6700;
        }
 
        .slide ul li a{
            display: inline-block;
            text-decoration: none;
            color: #fff;
        }
 
        .slide .iconfont{
            display: inline-block;
            font-size: 24px;
            color: #fff;
            position:absolute;
            right: 10px;
        }
 
        .slide-list{
            width: 992px;
            height: 460px;
            background-color: #fff;
            position: absolute;
            top: 0;
            left: 234px;
            border: 1px solid #e0e0e0;
            border-left: none;
            box-sizing: border-box;
            box-shadow: 0 4px 16px rgba(0,0,0,0.18);
            display: none;
        }
 
        /* 鼠标滑动到li标签上,让slide-list的div显示 */
        .slide ul li:hover>.slide-list{
            display: block;
        }
 
    </style>
</head>
<body>
 
    <div class="slide">
        <ul>
            <li>
                <a href="#">手机</a>
                <span class="iconfont icon-ico_listarrow"></span>
                <div class="slide-list">小米1</div>
            </li>
            <li>
                <a href="#">电视</a>
                <span class="iconfont icon-ico_listarrow"></span>
                <div class="slide-list">小米2</div>
            </li>
        </ul>
    </div>
     
</body>
</html>
老师,你好!这段代码里的 a标签和span标签为什么要设置成行内块级元素呢


WEB前端全系列/第一阶段:HTML5+CSS3模块/CSS应用技巧 13121楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 13122楼
JAVA 全系列/第六阶段:项目管理与SSM框架/Spring旧 13124楼
JAVA 全系列/第十九阶段:Spring Cloud微服务技术栈/Spring Cloud(旧) 13125楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637