LightGBMでモデルの作成と保存と読込方法 (python)
モデルの作成
model = lgb.train( params, trains, valid_sets=valids, callbacks=[ lgb.early_stopping(stopping_rounds=100, verbose=True), lgb.log_evaluation(10), ], )
モデルの保存
model.save_model("model.txt", num_iteration=model.best_iteration)
モデルの読込
model = lgb.Booster(model_file="model.txt")
Flutter いろいろ備忘メモ
いろいろメモ。
Flutter Webも含めたPlatform判別
Webブラウザでモバイル用のコンテンツをテストしようとすると、プラットフォーム判別で落ちるのでこれを使う。
bool isIos = UniversalPlatform.isIOS; bool isWeb = UniversalPlatform.isWeb;
デバッグモードかリリースモードを判断する
以下を使えばよいらしい
kReleaseMode kProfileMode kDebugMode
ウィジェットを囲む
(VS Code)
ウィジェットにカーソルが合った状態で Ctrl + . を押すと新しいウィジェットで対象ウィジェットをラップしてくれる。
閉じ括弧がどこまでなのかイライラすることがなくなる。
不定サイズのウィジェットを上下(または左右)半分に分割する
Expanded2個並列に並べたらいけるぽい
Widget build(BuildContext context) { return Column( children: [ Expanded( child: ColoredBox( color: Colors.red, child: Text(" 上 "), ), ), Expanded( child: ColoredBox( color: Colors.green, child: Text(" 下 "), ), ), ], ); }
Flutterでグラフ charts_flutter
charts_flutter
dependencies: flutter: sdk: flutter charts_flutter: "^0.11.0"
Flutterで各種グラフを描画できるパッケージ。
便利なんだけど情報が少なくて目的の処理をするのに調べるのが面倒だったので備忘録。
コードにコメントでメモ
//double fontSize; //class GraphData { // int hoge = 0; // int fuga = 0; // GraphData(this.hoge, this.fuga); //} List<charts.Series<GraphData, int>> _serieseData = []; _serieseData.add( charts.Series<GraphData, int>( id: "凡例", data: _graphData, domainFn: (GraphData data, _) => data.hoge, measureFn: (GraphData data, _) => data.fuga, colorFn: (GraphData data, _) => charts.ColorUtil.fromDartColor(Colors.blue),//線の色 ), ); Container( padding: EdgeInsets.all(10), width: 600, height: 400, child: charts.LineChart( _serieseData, animate: true, animationDuration: Duration(milliseconds: 300), //アニメーションの時間 behaviors: [ charts.SeriesLegend( position: charts.BehaviorPosition.top,//凡例の表示位置 desiredMaxColumns: 1,//凡例の並べ方の行数 entryTextStyle: charts.TextStyleSpec(//凡例のテキストスタイル color: charts.ColorUtil.fromDartColor(Colors.white), fontSize: (fontSize).toInt(), ), ), charts.ChartTitle( '横軸タイトル', behaviorPosition: charts.BehaviorPosition.bottom,//横軸なので下に表示 titleOutsideJustification: charts.OutsideJustification.middleDrawArea, titleStyleSpec: charts.TextStyleSpec(//テキストスタイル color: charts.ColorUtil.fromDartColor(Colors.white),//色は変換して使う fontSize: (fontSize).toInt(),//int型を要求される ), ), charts.ChartTitle( '縦軸タイトル', behaviorPosition: charts.BehaviorPosition.start,//縦軸なので左に表示 titleOutsideJustification: charts.OutsideJustification.middleDrawArea, titleStyleSpec: charts.TextStyleSpec(//テキストスタイル color: charts.ColorUtil.fromDartColor(Colors.white), fontSize: (fontSize).toInt(), ), ), ], domainAxis: charts.NumericAxisSpec(//横軸 viewport: charts.NumericExtents(10, 100.0), //横軸の表示範囲を明示する場合 tickProviderSpec: charts.BasicNumericTickProviderSpec( zeroBound: false, //falseにすると軸を0から開始せずに、存在するデータの値の範囲を表示する desiredTickCount: 10,//目盛りを何分割するか desiredなので必ずしもこの値にはならないが考慮してくれる // desiredMinTickCount: 5,//分割の範囲を指定する場合 // desiredMaxTickCount: 10, ), renderSpec: charts.GridlineRendererSpec( labelStyle: charts.TextStyleSpec(//目盛りのテキストスタイル fontSize: (fontSize).round(), color: charts.MaterialPalette.white, ), lineStyle: charts.LineStyleSpec(//目盛り線の設定 color: charts.ColorUtil.fromDartColor(Colors.grey), dashPattern: [4, 4],//点線(実線と隙間のサイズを指定する) ), ), ), primaryMeasureAxis: charts.NumericAxisSpec(//縦軸 tickProviderSpec: charts.BasicNumericTickProviderSpec( zeroBound: true, desiredTickCount: 10, // desiredMinTickCount: 5, // desiredMaxTickCount: 10, ), renderSpec: charts.GridlineRendererSpec( labelStyle: charts.TextStyleSpec( fontSize: (fontSize).round(), color: charts.MaterialPalette.white, ), lineStyle: charts.LineStyleSpec( color: charts.ColorUtil.fromDartColor(Colors.grey) //dashPattern: [4, 4], ), ), ), ), ),
Flutter webの設置方法
Flutter 備忘メモ
flutter build web
で生成されたブツをサーバーに設置したけど動かない。
ルート以外に置く場合は、パスを指定しないといけないぽい。
index.html
<base href="/hoge/hige/hage/">
Intel NUCのHackintosh化
Xcodeが必要になりそうなので、ほこりをかぶっていたMac mini(2014)を引っ張り出してきた。CPU2コア、メモリ8GB、ストレージはHDDと性能が心もとない。とりあえず分解して、余ってるSSDに換装してみた。
手順はこちらを参考にした。
割と難易度高い……。特殊ねじのドライバーも購入。
ということで、Hackintoshに挑戦してみた。Windows向けのマシンにMacOSいれるやつ。そこそこ高性能なNUC(BOXNUC8I5BEK)を余らせていたのでこいつを使う。CPU4コア、メモリ32GB、ストレージはSSD。
以下、NUCのHackintosh化の備忘メモ
基本的な手順はこちらを参考にした。
Kextを二つほど指定フォルダに入れて、config.plistを修正するだけ。
WiFiもいけそうだけど対応にクセがありそうなのと使わないので今回はオミット。
追加したKextのconfig.plistへの反映は、propertreeを使うことで自動でやってくれる。
内臓AudioデバイスとHDMIオーディオの対応は面倒そうだったのでパス。必要なときはBluetoothのデバイスを接続する想定。が、Audioデバイスが無い状態で動画を再生するとエラーがでていて不穏だったので(開発ツールが音出したときに落ちたら嫌だ)、とりあえず余ってるUSBオーディオをつないでおいた。USBポートに差すだけで認識するので便利。1000円くらいで売ってる。