自定义书签导航

纯css书签导航按钮 最近在写个网站,发现导航栏怎么写都不好看。后来在看别人的网站的时候发现了一个不错的设计,于是乎就想自己去试试如何写出同样的效果。先贴别人网站导航的效果图。 类似书签式的立体导航,瞬间就觉得这个设计真的不错。于是自己就开始思考。如何能用CSS做出同样的效果呢。首先从三角形开始思考。如何生成一个三角形来产生立体效果。于是就想到了border。代码与效果如下。 .allow{ 阅读详情

效果展示:
这里写图片描述
切换后:
这里写图片描述

实现思路:
1.三个书签其实就是三个TextView,先用shape画出TextView的两种状态,然后用选择器selector去切换TextView的状态。
2.创建三个Fragment,然后使用FragmentPagerAdapter进行适配。
3.三个TextView设置监听方法,当切换TextView时,Fragment也会相应的改变,也可以给三个ViewPager设置监听。
好了,不多说,下面开始代码展示咯:

1、Activity的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/iv_bg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@mipmap/pic2"/>

    <RelativeLayout
        android:id="@+id/rl_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="50dp"
            android:layout_marginTop="222dp"
            android:background="#0ff"
            android:orientation="vertical">
            <LinearLayout
                android:layout_marginTop="50dp"
                android:layout_width="match_parent"
                android:layout_height="38dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/tv_message"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="4dp"
                    android:layout_marginLeft="12dp"
                    android:layout_marginTop="4dp"
                    android:layout_weight="1"
                    android:background="@drawable/left_blue_selector"
                    android:gravity="center"
                    android:text="游戏信息"
                    android:textColor="@color/text_selector"

                    />

                <TextView
                    android:id="@+id/tv_gift"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="4dp"
                    android:layout_marginTop="4dp"
                    android:layout_weight="1"
                    android:background="@drawable/blue_selector"
                    android:gravity="center"
                    android:text="游戏礼包"

                    />
                <TextView
                    android:id="@+id/tv_pl"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="4dp"
                    android:layout_marginRight="12dp"
                    android:layout_marginTop="4dp"
                    android:layout_weight="1"
                    android:background="@drawable/right_blue_selector"
                    android:gravity="center"
                    android:text="评论"

                    />
            </LinearLayout>
            <android.support.v4.view.ViewPager
                android:id="@+id/viewpager"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                />
        </LinearLayout>
        </RelativeLayout>

2.选择器selector的代码,我就演示一个了,其他两个选择器都差不多:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <!-- 当我们点击TtxtView时,我们就会选择left_blue_selector_true这个状态,也就是选中状态。-->
    <item android:drawable="@drawable/left_blue_selector_true" android:state_selected="true"/>
    <item android:drawable="@drawable/left_blue_selector_false"/>
</selector>

3.shopa中的代码:
选中状态:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--画圆角-->
    <!--bottomLeftRadius:左下角的圆的半径-->
    <!--android:radius="4dp":代表四个角的圆角的半径-->
    <corners
        android:bottomLeftRadius="4dp"
        android:topLeftRadius="4dp" />
    <!--shape中间填充部分的颜色:蓝色-->
    <solid android:color="@android:color/holo_blue_light" />
    <!--shape边框的颜色-->
    <stroke
        android:width="2px"
        android:color="@android:color/holo_blue_light" />
</shape>

未选中状态:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--画圆角-->
    <!--bottomLeftRadius:左下角的圆的半径-->
    <!--android:radius="4dp":代表四个角的圆角的半径-->
    <corners
        android:bottomLeftRadius="4dp"
        android:topLeftRadius="4dp"
        />
    <!--shape中间填充部分的颜色:白色-->
    <solid android:color="@android:color/white" />
    <!--shape边框的颜色-->
    <stroke
        android:width="1dp"
        android:color="@android:color/holo_blue_light" />

</shape>

4.Activity中的java代码:

public class GameDetailActivity extends BaseActivity {
    private BaseFragmentPageAdapter mAdapter;
    private List<Fragment> list;
    private ViewPager mViewpager;
    private RelativeLayout rlContainer;
    private ImageView ivBg;
    private int offset;
    private boolean isShow=false;
    private TextView textView1,textView2,textView3;
    @Override
    protected int setViewId() {
        return R.layout.activity_game_detail;
    }
    @Override
    protected void findviews() {
        rlContainer = (RelativeLayout) findViewById(R.id.rl_container);
        ivBg = (ImageView) findViewById(R.id.iv_bg);
        textView1= (TextView) findViewById(R.id.tv_message);
        textView2= (TextView) findViewById(R.id.tv_gift);
        textView3= (TextView) findViewById(R.id.tv_pl);
        mViewpager= (ViewPager) findViewById(R.id.viewpager);
    }


    @Override
    protected void initEvent() {
        //TODO 这三个text的点击监听事件,其他也必须设置这三个点击事件,不然点击text的时候会被图片隐藏
        textView1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textView1.setSelected(true);
                textView3.setSelected(false);
                textView2.setSelected(false);
                mViewpager.setCurrentItem(0);//TODO setCurrentItem(0)方法表示获得viewpager中的第一个Fragment。
            }
        });
        textView2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                textView1.setSelected(false);
                textView3.setSelected(false);
                textView2.setSelected(true);
                mViewpager.setCurrentItem(1);
            }
        });
        textView3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textView1.setSelected(false);
                textView3.setSelected(true);
                textView2.setSelected(false);
                mViewpager.setCurrentItem(2);
            }
        });
        textView1.performClick();
        loadData();
        mAdapter=new BaseFragmentPageAdapter(getSupportFragmentManager(),list);
        mViewpager.setAdapter(mAdapter);
        //TODO ViewPager的监听
        mViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0:
                        textView1.setSelected(true);
                        textView3.setSelected(false);
                        textView2.setSelected(false);
                        break;
                    case 1:
                        textView1.setSelected(false);
                        textView2.setSelected(true);
                        textView3.setSelected(false);
                        break;
                    case 2:
                        textView2.setSelected(false);
                        textView3.setSelected(true);
                        textView1.setSelected(false);
                        break;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
  @Override
    protected void loadData() {
        list = new ArrayList<>();
        FragmentGift  gift = new FragmentGift();
        FragmentMessage message = new FragmentMessage();
        FragmentPl pl = new FragmentPl();
        list.add(message);//TODO 第一个添加的Fragment就等于setCurrentItem(0)。为ViewPager中的第一个fragment。
        list.add(gift);
        list.add(pl);

    }
}

5.适配器

public class BaseFragmentPageAdapter extends FragmentPagerAdapter
{

    /**
     * Fragment集合
     */
    private List<Fragment> list;

    private List<String> titles;

    public BaseFragmentPageAdapter(FragmentManager fm, List<Fragment> list)
    {
        super(fm);
        this.list = list;
    }



    @Override
    public Fragment getItem(int position)
    {
        return list.get(position);
    }

    @Override
    public int getCount()
    {
        return list.size();
    }

    /**
     * 返回当前position对应的title
     * 
     * @param position
     * @return
     */
    @Override
    public CharSequence getPageTitle(int position)
    {
        String title = "";
        //如果使用了两个参数的构造方法,会导致titles为null,所以加入此判断
        if (titles != null)
        {
            title = titles.get(position);
        }
        return title;
    }
}
【效率提升】IDEA书签功能进阶:自定义与快捷键的极致运用 本文深入解析了IDEA书签功能的进阶用法,重点阐述了如何通过自定义书签名和快捷键实现标签快速跳转,从而极大提升多文件、复杂项目中的代码导航效率。文章提供了从基础操作到实战场景的完整指南,帮助开发者构建个人高效的代码导航系统。 阅读详情

相关推荐

浏览器书签秒变导航网站,这个工具太神奇了!

浏览器书签秒变导航网站,这个工具太神奇了!

XiaoqiangClub的博客 1113

发现便捷,畅游互联网世界——【书签导航】带你领略全新体验!

【书签导航】是一个为广大互联网学习者提供便捷导航和学习工具的集中化平台,涵盖多种类别、框架和工具,提供高质量教程、文档、社区和在线学习平台的链接,帮助用户快速找到资源。

一个正经的程序员 514

基于PHP的网址导航书签系统源码.zip

基于PHP的网址导航书签系统源码.zip

MX书签导航网—随心所浏览,绝佳起始页,弥夏书签导航网

在这里插入图片描述开源网址:https://github.com/tsxcw/mtab。在这里插入图片描述在这里插入图片描述#书签导航网#MX书签导航网。如果你也想搭建付费版让你在限时优惠的基础上再砍30元。支付的时候会优惠30元,(优惠会在支付订单显示)直接去官网输入优惠吗:ly522。无论何地,始终随心所浏览。

轻刻年轮 1604

2024开源无限制版TwoNav网址导航系统源码内置二十多套主题模板.rar

本版是收费版放开的无限制版 无需注册 TwoNav 是一款开源的书签(导航)管理程序,使用PHP + SQLite 3开发,界面简洁,安装简单,使用方便, 基础功能免费。 TwoNav可帮助你你将浏览器书签集中式管理,解决跨设备、跨平台、跨浏览器之间同步和访问困难问题,做到一处部署,随处访问。功能特色 支持后台管理 支持私有链接 支持加密链接 支持分享链接 支持二级分类 支持用户分组 支持Chrome/Firefox/Edge书签批量导入 支持多种主题风格 支持链接信息自动识别 支持API 支持Docker部署 支持uTools插件 支持Chromium内核的[浏览器扩展]

骁龙X Elite笔记本重装Windows 11 Arm64系统完整指南与避坑手册

UEFI安全启动和Arm64架构是理解现代计算设备系统部署的基础。UEFI取代传统BIOS,提供了更安全的启动环境和模块化固件接口,而Arm64架构则以其高能效特性,在移动和新兴PC领域日益重要。其技术价值在于为设备带来更快的启动速度、更强的安全防护以及更优的功耗表现。在应用场景上,这直接关系到搭载高通骁龙X Elite等Arm处理器的笔记本电脑的系统安装与维护。对于这类设备,重装系统远非插入通用安装盘那么简单,核心挑战在于必须使用专为Arm64编译的Windows镜像,并需提前集成芯片组、网络等硬件的专属

weixin_33428613的博客 476

PowerBI 书签导航-默认选中书签

如下图,更新的是字体的粗细(其他更改也可以),点击后,书签默认项会跳到第一步中点击的书签。问题:书签导航器的默认选中书签不受控制,时左时右,飘忽不定。不影响使用,但看着不舒服。如下图,当前展示的是第二项【客户工单】,点击一下第一项【客户耗时】,界面上无变化。背景:刚接触PowerBI,边查资料边摸索,建立一个简单数据图表,需要图表切换。经过:3组书签导航,不同操作,观察何种操作生效。耗时1.2小时,终于找到方法。此方法可任意选择不同默认书签。第二步:【设置导航器格式】中。方法很简单,就2步。

闲来无事 1063

强化学习——day16 动态规划算法

动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略

想太多的学习日志 1550

告别混乱书签:BIThesis PDF导航自定义完全指南

你是否曾在答辩时因PDF书签混乱被导师指出格式问题?是否花费数小时手动调整论文目录结构却收效甚微?作为北京理工大学非官方LaTeX模板集合,BIThesis提供的PDF书签(Bookmark)自定义功能,可一键实现符合学术规范的导航结构。本文将系统解析其实现原理与高级用法,帮助研究者构建专业级文档导航系统。 ## 书签功能核心实现机制 BIThesis通过LaTeX宏包`hyperref`与`...

gitblog_07598的博客 426

MIT 18.03 微分方程 ODE 学习笔记分享——目录

从B站上看到了MIT 微分方程的课程,觉得老爷子讲的真好! 其实微分方程对于工科来说相当重要,但是很多学习也仅把他放在高数里作为单独的一个章节来讲,这是远远不够的。所以对于同学们来说 ,一定要认真听讲,做好笔记! 以下是我的个人学习比较分享。有需要的同学可以做一个参考。 注:个人认为笔记的作用是用来回想起课堂所讲的内容(细节),所以我的笔记风格为以老师讲课思路为准,板书为辅。建议刚开始听这门课的同...

weixin_40664094的博客 2625

SpringBoot实现电子发票生成

电子发票是近年来比较流行的一种票据形式,它取代了以往传统的纸质发票,具有减少纸张浪费、方便有效查验等优点。本文将介绍如何使用Spring Boot和Vue.js构建一个仿真电子发票生成应用程序,借助微信二维码扫描功能和第三方库,实现用户扫描二维码获取发票信息并填写相关开票信息,最后生成电子发票。在本文中,我们介绍了如何使用Spring Boot和Vue.js构建一个仿真电子发票生成应用程序,借助微信二维码扫描功能和第三方库,实现用户扫描二维码获取发票信息并填写相关开票信息,最后生成电子发票。

不愧是暮言的博客 6090

利用自定义分组搭建贴合自身工作流的导航工作台|职场人导航之个性书签!

浏览器书签大多扁平列表,工作网址、娱乐网站、资讯链接全部混在一起。文档处理组:思维导图、AI 纪要、PPT 生成工具;前端开发组:图标库、字体工具、在线调试网站;素材资源组:免费图库、配色工具、矢量素材平台。开展一项工作时,只需要打开对应分组,整套流程所需工具集中展示。

awayaya1的博客 201

Ubuntu开机卡在BusyBox?3种方法快速修复initramfs错误(附详细命令)

本文详细介绍了Ubuntu开机卡在BusyBox并出现initramfs错误的3种修复方法,包括使用fsck检查文件系统、调整BIOS/UEFI存储设置以及修改GRUB内核参数。针对常见的文件系统错误和根设备无法找到问题,提供了具体的命令行操作步骤和实用技巧,帮助用户快速恢复系统启动。

milk8的博客 784

Fenrus自定义导航页告别杂乱书签!cpolar让异地访问超丝滑

Fenrus 凭借自定义、轻量化的特点,能很好地满足日常导航页的使用需求,而 cpolar 内网穿透则突破了局域网的边界,让这款实用的导航工具实现了异地访问的可能。两者结合,既保留了 Fenrus 的使用体验,又拓展了使用场景,无论是日常办公还是个人使用,都能让导航页的价值得到充分发挥。

专注于 C/C++ 后端开发,涵盖基础语法、Linux系统与网络、MySQL数据库、常见算法及项目经验。 1万+

ESP32驱动TFT屏幕实战:LVGL与TFT_eSPI完美结合

本文详细介绍了如何在ESP32上结合TFT_eSPI驱动库与LVGL图形库,实现高效、流畅的嵌入式GUI开发。内容涵盖硬件连接、软件环境搭建、库配置、LVGL移植、界面创建及性能优化等全流程实战指南,帮助开发者快速构建低成本、高性能的交互式显示应用。

weixin_29206669的博客 200

浅谈车联网概述-1

车联网技术目前在车企中应用广泛,车联网通过车载传感器、无线通信等技术,能够将车辆上百的传感器数据上传至云端,当前智能网联车辆可以理解为一个“大号”手机。

Hello, World! 新能源汽车智能网联工程师,分享日常工作思考。 559

使用Vim打造IDE--书签功能

<br />原文如下:<br />http://blog.youkuaiyun.com/wooin/archive/2007/10/31/1858917.aspx<br /> <br />VisualMark<br /> <br />下载地址:<br />http://www.vim.org/scripts/script.php?script_id=1026<br /> <br />安装:<br /> <br />放置于~/.vim/plugin文件夹下。<br /> <br /> <br />vim本身就有Mark功

IterZebra 3485

EMB电子机械制动执行器五大核心部件选型解析

本文介绍了EMB电子机械制动执行器五大核心部件的选型方案:采用无刷直流电机作为驱动源,兼具高扭矩和快速响应特性;选用滚珠丝杠传动机构,实现高效旋转-直线转换;行星齿轮减速器满足紧凑空间内的增扭需求;QT450-QT550材质的钳体确保刚度要求;应变片式压力传感器实现夹紧力精确测量。各部件选型综合考虑了性能、可靠性和空间限制,为EMB系统设计提供了完整解决方案。

m0_59012156的博客 1733

Quick 书签菜单插件使用方法

Quick 书签菜单插件安装完成以后,直接点击浏览器上方工具栏中的插件图标,即可对浏览器中的书签进行查看和管理。

weixin_38293850的博客 2615

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

浏览器主页担心被篡改和锁定?同步登录自定义导航书签

浏览器主页将它默认改回自己的主页,结果刷新或重新进入后被恶意篡改。比较难弄的情况是浏览器主页被锁定,这是不能直接进行设置的意思了。我的浏览器主页就被挟持篡改过,所以也只能乖乖卸掉重装。 估计是这些原因吧,浏览器主页被篡改可能是没有在官方渠道下载浏览器,而它们本身就带有一些流氓软件或者病毒插件。这就会出现问题,我的电脑不知不觉就安装上一大堆软件,和它相关的弹窗就会老是出现。 有些能关掉还是幸运的,有些本来是想关掉的演变成跳向这个链接。网上说什么打开任务管理器阻止弹窗运行,奈何对我来说不太管用。 其实这些篡改

speedpdf的博客 432

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Bookmarker:Sketch 应用中的终极书签插件

Bookmarker:Sketch 应用中的终极书签插件 项目介绍 在设计过程中,尤其是在处理大型文档时,快速定位到特定的图层是每个设计师的梦想。Bookmarker 正是为解决这一痛点而生的 Sketch 插件。它不仅能够帮助你快速书签化图层,还能通过快捷键实现一键导航,极大地提升了工作效率。 项目技术分析 Bookmarker 是一个基于 Sketch 平台的插件,利用了 Sketch 提供的...

gitblog_00071的博客 473

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

还在用浏览器自带书签功能?快试试藏趣云跨平台书签导航系统,效率提升100倍。

        你们是否也和我一样,在多个浏览器之间来回的切换,我每天工作都在几个浏览器来回的切换,我又是浏览器书签的重度爱好者,导致我使用起来异常的痛苦,所以我自己写了一个免费的跨平台的浏览器书签网。        项目上线我使用了一段时间后,发现了一些问题,使用不便捷,操作复杂等等,所以我又抽时间,对系统进行了部分功能的重构和新增了搜索导航等功能

qq_42828380的博客 438

如何快速上手Mtab书签导航?从安装到使用的完整指南

Mtab书签导航程序是一款免费无广告的浏览器书签助手,支持多端同步、美观易用的在线导航和书签工具,自主研发免费使用,帮助您高效管理网页和应用,提升在线体验。 [![Mtab书签导航背景图](https://raw.gitcode.com/gh_mirrors/mt/mtab/raw/9f99adf84200c1300a4923058b7a6aec76632fb9/public/static/ba

gitblog_00988的博客 1011

告别PDF混乱导航:LaTeX-Workshop书签管理终极指南

LaTeX-Workshop是一款功能强大的LaTeX编辑工具,能够显著提升LaTeX排版效率,提供预览、编译、自动补全、语法高亮等丰富功能。对于经常处理复杂LaTeX文档的用户来说,高效的导航功能至关重要,而LaTeX-Workshop的书签管理功能正是解决PDF文档混乱导航问题的理想选择。 ## 为什么需要高效的LaTeX书签管理? 在处理包含大量章节、公式和图表的LaTeX文档时,传统的

gitblog_01097的博客 669
上一篇: 点击图片产生水波的动画效果代码展示
下一篇: 使用Handler中postDelayed方法实现广告页面无限循环轮播效果
Allen-华
博客等级 码龄11年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值